VZユーザーのための,VWXによる正規表現利用のてびき
初出:nifty:FGALDC/MES/13/09142〜 (2002/06/18〜2002/07/21)
わたしたちは通常の検索をする時に,特別な文字の場合を除けば,1文字だけを検索するということはほとんどないと思います。あまりにもヒットしすぎて特定できませんからね。それで単語や熟語という単位で検索するわけです。これらは一般的に「文字列」と呼ばれますね。実はこれも広い意味では正規表現の一種なのです。少なくとも,UNIXツールではそういう概念ではないかと思えます。
こんなことを言うと猫だまし手法じゃないかと疑われそうですが,ホントなんです。
さて,文字列の指定をするだけで,なぜ正規表現の一種と言えるのでしょうか。それは次のような概念によります。文字列『abc』は,『a』に連接して『b』があり,さらに『b』に連接して『c』があるという一定の関係によって成り立っている情報です。決して『a』『b』『c』がそれぞればらばらに存在する情報ではありません。これは正規表現で言うところの「並び」というものです。
さらに言えば,1文字の場合であってもそうです。文字定数と考えるとよいでしょう。1文字の文字定数はそれ以外の文字とは決して一致しない固有の値です。正規表現の特別な意味を持つ文字は演算子や変数ということになります。これなら算数の式とあまり変わるところはありません。
こう考えるだけで,正規表現がぐっと身近に思えてきませんか?
もちろん正規表現には非常に複雑な文字列を表わす能力が備わっています。ほとんど呪文にしか見えない文字や記号の込み入った書き方が出てくることもあります。でも,すべてを覚える必要はないではありませんか。囲碁だって,定石を全部覚えなければうてないなんてことはありませんよね。基本のルールを覚えただけでも,狭い面なら十分楽しめるはずです。最初から欲張ってあれもこれもと考えると失敗します。ともかく簡単なものを書いてうまくいったら少し増やし,うまくいかなかったら元に戻しましょう。
これ以降は「正規表現」と言えば,「文字,文字列あるいは正規表現」というように,暗黙のうちに文字そのものや文字列を含むと考えてください。