-1
4

3 に答える 3

1

(?!xyz)したいがしたくない簡単な例は(?!xyz)(?<!xyz)正規表現xyz(?!xyz)で、xyzすぐに別のxyz. で試してみると、xyz(?!xyz)(?<!xyz)一致しないことがわかります。(?<!xyz)がチェックされているポイントの前には常に がありますxyz。これは、ちょうど一致したためです。

于 2015-06-03T21:38:21.027 に答える
0

あなたはポイントを逃しています、私は恐れています。

後読みはパターン内の場所の前に文字をチェックすることであり、先読みは後の文字をチェックすることです。

abc(?!xyz)abcの後に が続いていないかどうかをチェックします。xyzこれは理にかなっていabcxyzz ます

(?<!xyz)abcは の前の文字をチェックしabc、 に一致がありますabcxyzz(こちらを参照)。

では、abc(?!xyz)(?<!xyz)(?<!xyz)常に真なので意味がありません ( はありますがabc、 はありませんxyz)。abc(?!xyz)(?<!xyz)= abc(?!xyz).

では(?!xyz)(?<!xyz)abc、 はではない(?!xyz)ため、この部分は常に true です。= .abcxyz(?!xyz)(?<!xyz)abc(?<!xyz)abc

あなたが提案する方法で後読みで先読みを使用しても意味がありません。それはオーバーヘッドを追加し、パフォーマンスを低下させて統合をもたらさず、エンジンに苦痛をもたらします。

于 2015-06-03T21:32:22.850 に答える