|
\1・\2 一般的正規表現互換のタグ付き正規表現(Ver6.14対応版)
Perl等でのタグ付き正規表現では、カッコを使ってターゲットを指定する形になっています。
そのPerl等と同じ方式のタグ指定が、HmJre.dllでも出来ます。
こっちの方式でタグ指定する場合は、その指定されたタグを検索パターンの中に入れることも出来ます。
こちらのやり方としては、タグ指定したい部分をカッコで囲みます。例えば、英数字と数字の組み合わせを検索しつつ、そのヒットした部分の数字の部分だけをタグ指定したい場合は、その数字に相当する部分をカッコで囲みます。
[a-z]+([0-9]+)
のように指定します。そして、タグとしては、\1というのが数字の部分に相当することになります。または、
([a-z]+)([0-9]+)
のようなパターンを指定した場合は、英字の部分が\1になり、数字の部分が\2となります。
タグの対象となるのはあくまで一番ネストの浅いカッコだけなので、例えば、
(aaa|(bbb|ccc))
と指定した場合には、それ全体が\1に相当し、\2、\3に該当する物は存在しないことになります。
「\1」等を検索文字列の中に入れることも出来ます。例えば、
\<([a-z])((?!\1)[a-z])\2\>
と指定すると、"see"や"all"のような、1文字目と2文字目は一致しないけども2文字目と3文字目が一致する3文字の単語を検索することが出来ます。
【 補足 】
前方一致/不一致、後方一致/不一致指定についてはタグ付き正規表現でのカッコの対象外となります。例えば、"(abc)(?!xyz)(jre)"というパターンを指定した場合での"\2"に該当する部分は(jre)部分となります。
一般的正規表現のタグを使っている場合で、"\0"を記述すると検索文字列全体を指すことになってしまいますが、これは"\f"区切りを使った場合との互換で"\0"が使えてしまいます。一般的正規表現のタグを使う場合は"\0"は使わないように注意してください。
|