English help on website



強調表示の前方一致/前方不一致の制限解除(Ver9.34対応版)
目次コマンド検索系コマンド正規表現− 強調表示の前方一致/前方不一致の制限解除
前方一致前方不一致は、通常の下検索/上検索では、前方一致指定のパターンが検索開始位置よりも前にあってもヒットします。
しかし強調表示では、検索開始位置よりも前にはヒットしない制限があります。

例えば「abc 1 xyz 2 xyz」というテキストを、「(?<=abc.*)xyz」というパターンで検索する場合、「1」にカーソルがあっても「2」にカーソルがあっても、下検索/上検索はヒットします。
強調表示は、1つ目の「xyz」しか強調されないです。1つ目は行頭が検索開始位置で、2つ目は見つかった「xyz」の次が検索開始位置になっているためです。

この制限を解除するには、(?#lookbehind)を一緒に書いておくと、強調表示においては解除されます。
ただし、とても長い一行で前方一致のパターンに「.*」がある場合などで、遅くなる可能性があります。