5

これは単純なはずですが、私は初心者であり、私の一生の間それを理解することはできません。正規表現を使用して、特別な開始/終了タグ内のテキストを一致させようとしています:[p2] [/ p2]

したがって、このテキストでは:

apple [p2]banana[/p2] grape [p2]lemon[/p2]

「バナナ」と「レモン」に一致する必要があります。これまでに作成した正規表現は次のとおりです。

(?<=\[p2\]).+(?=\[\/p2\])

しかし、これはあまりにも貪欲です。バナナの「b」で始まり、レモンの「n」で終わり、バナナ[/p2]ブドウ[p2]レモンと一致します。バナナとレモンを合わせるにはどうすればよいですか?

4

2 に答える 2

5

これはそれを行う必要があります:

(?<=\[p2\]).+?(?=\[\/p2\])

数量詞を欲張りでないものにするために疑問符を追加しました。

于 2009-11-13T21:07:54.610 に答える
0

regex 修飾子を使用する代わりに、標準の perl スタイルの match 修飾子を使用して、? + または * の後に、その特定の部分が貪欲でないことを伝えます。上記で述べましたが、特異性が役立ちます。

于 2009-11-13T21:19:59.750 に答える