|
今日は、白雲斎です。
タグ付き正規表現の \0 が意味するところを、もう少し詳しく説明した方が
良くないですか?
"\f" を用いたダグ付き正規表現のヘルプでは、
『置換先の文字列で、\0、\1、\2…といった形で検索元文字列を利用する』
とあり、"\0" が利用できることが分かります。
一方、「一般的正規表現互換のタグ付き正規表現」のヘルプでは、
\0 に関する記述はありません。
このことを念頭において、
xxxabcxxx
xxxdefxxx
上2行のテキストを、下の2種類で置き換えを実行します。
(1).
検索:(abc|def)
置換:<\0>
結果:
xxx<abc>xxx
xxx<def>xxx
(2).
検索:(abc|def)
置換:<\1>
結果:
xxx<abc>xxx
xxx<def>xxx
結果は、どちらも同じになります。
また、下の3種類で置き換えを実行します。
(3).
検索:.*(abc|def)
置換:<\0>
結果:
<xxxabc>xxx
<xxxdef>xxx
(4).
検索:.*(abc|def)
置換:<\1>
結果:
<abc>xxx
<def>xxx
(5).
検索:.*(abc|def)
置換:\0<\1>
結果:
xxxabc<abc>xxx
xxxdef<def>xxx
「"\f"を用いたダグ付き正規表現」
「一般的正規表現互換のタグ付き正規表現」
の双方を理解しているつもりでも、時たま頭が混乱してしまいます。
まして、どちらか一方のみしか知らない人が、もう片方を利用する時、
混乱しないでしょうか?
|
|