0

名詞またはadjまたはadvで始まるテキストを<を満たすまで検索したいと思います。nounadj、およびadvは、それらと<の間に再び現れてはなりません。この正規表現が機能することを期待していましたが、失敗しました。どうすればこれを機能させることができますか?

(noun|adj|adv)[^\1]+?<
4

2 に答える 2

0

前の解決策は半分正しいですが、どれも正しくありませんでした。ロバートはそれを完全に間違えました。@Benoit は正しいことに近づきましたが、それでも間違っていました。理由は次のとおりです: http://regex101.com/r/qI7hA6 -- エンジンは、先読みが失敗しない別の位置で一致するだけです。不要な後方参照も設定します。その上、テキストで名詞/副詞/副詞を許可します。

これがより良い解決策です:http://regex101.com/r/nL8lL7

/^|\G(?:noun|adj|adv)((?:(?!noun|adj|adv).)+)</gm

これがうまくいくことを願っています。探しているものではない場合は、明確にしてください。それに応じて表現を調整します。

幸運を。

于 2012-08-27T10:25:55.517 に答える
0

[...]ブラケット構文は、個々の文字のみを検索します。

ここでは、否定的なアサーションを使用する必要があります: ((?!\1).)+could do it. 正規表現構文が perl/ecmascript と互換性がある場合。

(noun|adj|adv)((?!\1).)+<
于 2012-08-27T09:25:06.980 に答える