2

正規表現パターンでキャプチャ グループを参照できることを考えると、そのキャプチャ グループを で使用することは可能lookbehindですか?

あなたが文字列を持っている場合

"monkeys eat bananas, bananas are terrified of monkeys"

バナナは最初に一致したペアで、サルは最初に一致した単語です。問題なくサルをゲットできます

(\w+).*\1 # returns monkeys

しかし、最初に一致する単語を取得したい場合は、このようなことができる必要があります

(?<=\1)(\w+)

lookbehindただし、これは失敗します。単純な理由から、が評価されても意味がないのではないかと思い\1ます。まだ出会っていない正規表現の魔法はありますか?

4

1 に答える 1

1

多くの正規表現エンジンでは、参照するグループのに後方参照が必要です ( .NET でのこの動作に関する私の関連する質問を参照してください)。

代わりに先読みを使用してみてください。

(\w+)(?=.*\1)
于 2013-09-08T23:42:28.360 に答える