12

「先読み」と「後読み」の概念を理解するのに苦労しています。たとえば、文字列「aaaaaxbbbbb」があります。「x」を見る場合、先読みとは「x」を「bbbbb」または「aaaaa」に向けることを意味しますか?私は方向を意味します。

4

1 に答える 1

23

正規表現がx(?=insert_regex_here)(ポジティブな)先読み*である場合、これは見越す、つまり「bbbb」に向かって先を見越します。これは、「後に続く xを見つける」という意味insert_regex_hereです。

正規表現が(?<=insert_regex_here)x(ポジティブな)ルック*ビハインド*である場合、これは後ろ、つまり後ろ向き、つまり「aaaa」に向かって見えます。これは、「前に あるxを見つける」という意味insert_regex_hereです。

また、「前に「がない」を意味する負の先読みと、「前に」がない「x 」意味x(?!insert_regex_here)する負の先読みを設定することもできます。x insert_regex_here(?<!insert_regex_here)xinsert_regex_here

(上記(?=など(?<! はPerl正規表現の構文です。正規表現のフレーバーによって構文が少し異なる場合があります)。

チャドがコメントで与えたリンクを読むことをお勧めします。例があります。

于 2012-07-23T23:41:05.600 に答える