VZユーザーのための,VWXによる正規表現利用のてびき
初出:nifty:FGALDC/MES/13/09142〜 (2002/06/18〜2002/07/21)
『
』は『^』と同様に位置を指定するメタキャラクタです。意味は『^』の反対で,パターンの最後に存在するときのみ、行の末尾にマッチします。なお,マクロで使用する場合は注意が必要です。VZマクロにおいては,文字列中の『
』が特殊文字の意味を打ち消す特殊文字として使われるため,常に検索文字列の最後になるメタキャラクタの『 』は,直後にある『"』の特殊文字としての意味を打ち消してしまいます。こうなると後続のマクロコードと文字列の関係が逆転してしまうことになってしまいますので,大抵はマクロの実行が停止してしまいます。VZマクロでは,この点だけ注意してください。マクロでは,以下のように『 』を重ねてください。
RX[+, #56 "。$$" #m "。\n" #m "ay" RX], ;段落間に空行を挿入
通常の置換での入力窓ではそのまま解釈されますので,重ねる必要はありません。おそらく重ねると置換0個で終了するでしょう。
『
』の出番は『^』ほど多くないかもしれません。通常は他のパターンと組み合わせて改行までの任意の文字列を示す,という使い方が多いと思います。なお,『
』『 』は「アンカー」とも呼ばれています。"anchor"とは「錨」のことですね。船舶をつなぎとめて停泊させる働きをするものです。つまり,正規表現のアンカーは行頭あるいは行末につなぎ止めているイメージですね。リレーの最終走者もアンカーと言い,こちらも末尾のイメージです。「位置指定」などという言い方よりも,こちらのほうが相当イメージに近いのではないでしょうか。それに『 』をよく見てください。錨を図案化するとたいてい鎖や綱がからんでいるように描かれます。その部分にそっくりでしょう?・・・あほか!
でも,電算機同士でしりとりをするとしたら,単なる検索機能を持つ方と,正規表現が使える検索機能を持つ方では,どちらに軍配が上がるか明らかですね。馬鹿馬鹿しいようですが,実は本質を突いていると思いませんか?