1

教授がくれた*.sgmのタグの外側にあるすべての「行為」を一致させたいのですが、XMLパーサーを使用できることは知っていますが、私たちの目標はREGEXを純粋に学ぶことです。

これは私の現在の正規表現です:

(?<![""=<\/])\bthe act\b(?!\>)

問題はこの例にあります:

<ptext>Test example the act example</ptext>

私の正規表現は「行為」と一致します。そしてそれは正しいです。

しかし、この例が今なら私は試してみます:

<ptext tags="Test the act">Example the act</ptext>

正規表現は、(2)2つの「アクト」に一致します。1つはタグ属性の内側にあり、もう1つは外側にあります。タグ内のすべてのアクトを一致させたくないのですが、どうすればよいですか?ありがとう。

4

1 に答える 1

3

多分これはうまくいくでしょう:(?<=\>[^>]*)the act(?=[^<]*\<)正規表現エンジンが可変長のルックビハインドを許可していればうまくいくはずです.c#のエンジンはそうすると思います.

于 2012-08-03T05:39:40.613 に答える