3

前回と同様に、私は正規表現を学びたいので、他のネット メソッドを提案しないでくださいと言うところから始めます。これは純粋に私自身の学習のためなので、ここに行きます。

貪欲であることはうまくいくかもしれませんが、それが常に答えであるとは限らず、将来の問題や悪い結果を引き起こす可能性があると思います. この例のテキストを見てください。はい、私が今プレイしている珍しい形式です

{regex}Hello World GET a1b2c3{regex}

私が求めている部分は「a1b2c32」で、これは文字または数字のみですが、常に { で終わり、空白で始まります。私の最初の試みは、前向きな表情でした。

(?<={regex}Hello World  GET )[a-z0-9]+(?={regex})

しかし、その後、中括弧ではない文字の一致について戦いました

"Hello World  GET [^{]+"

これにより、不要なテキストがキャプチャされ、グループ 1 に参照されることがわかります。基本的に、最初の例の改善を探しているだけです。私にとっては学習とテストがすべてなので、実際のプロジェクトではありません。

時間を割いて読んでくれてありがとう:)

4

2 に答える 2

1

たぶん、より一般的な正規表現:

[^{ ]+(?={)

正規表現101のデモ

[^{ ]+{とスペースを除く任意の文字と+一致し、文字列の最初の空の文字列と一致しないように、少なくとも 1 つの文字が存在することが保証されます。

肯定的な先読みを理解するのは難しくありません。

于 2013-09-14T18:16:14.067 に答える