(?<=expression) 前方一致指定(Ver8.22対応版)
目次検索系コマンド正規表現− 前方一致指定
 特定の正規表現パターンの前に、さらに特定の正規表現パターンが存在していることを指定しつつ、正規表現にヒットする文字列としては後方部分のみとするような指定が出来ます。
 例えば、「abcxyz」という文字列を検索しつつ、ヒットする文字としては「xyz」だけにしたいようなケースに使います。普通の検索では必要ありませんが、強調表示や置換の時に使うと便利です。

 例えば「abc」の後に「xyz」が続きつつ、ヒットする文字列は「xyz」だけにしたい場合は、
(?<=abc)xyz
 と指定します。

 前方一致指定は、正規表現文字列の先頭に書く必要があります。また、前方一致指定の表記自体をカッコで囲んだり「|」などと組み合わせることは出来ません。そういう指定をしてもエラーにはなりませんが、間違った検索を実行してしまいます。

【 検索系コマンドでの次候補/下候補系コマンド実行時の注意 】

 例えば上記のような検索例で、「abcxyz」の先頭からではなく、例えば「b」の部分から検索を開始した場合、残念ながらHmJre.dllではxyz部分にうまくヒットしません。xyz部分にヒットさせるには、abcxyzの先頭から検索する必要があります。

【 改行文字の指定についての制限 】

 前方一致/前方不一致指定の括弧の中には改行文字を入れることが出来ません。無理矢理改行文字を入れて検索してもうまくヒットしない可能性が高いです。
 前方一致指定の中に改行文字を入れるような検索をしたい場合は、ヒットした扱いにするタグ指定複数行検索時の制限解除を組み合わせる必要があります。具体的には、
(?<=pattern1)pattern2
のような検索をしたい場合でpattern1に改行文字を含む場合は、
(pattern1)(pattern2)(?\2)(?#fulllinematch)
のように指定してください。


戻る