Vz resources : Regular Expression

耳より正規表現入門

VZユーザーのための,VWXによる正規表現利用のてびき
初出:nifty:FGALDC/MES/13/09142〜 (2002/06/18〜2002/07/21)

第4回  メタキャラクタの使い方 (1) . (ドット)

まずは『.』 (ドット)です。
 顔の長いミュージシャンですね。(それは,トッド。)
 ハムスターのアニメです。(それは,とっとこ。)

ドットという呼び方は,インターネットやメールの利用がどっと普及して,どっと一般的になったので(しつこい),なんとなく使ってみましょう。

.』は,言わばジョーカーのようなメタキャラクタです。いわゆる「ワイルドカード」ということになりますね。コマンドラインでのワイルドカードで言えば,『?』にあたります。正規表現のメタキャラクタの『?』は別の意味を持ちますので,混同しないようにしてください。

改行を除いた任意の1文字にマッチしますので,例えば次のような使い方ができます。

「えーと,朝刊配っていた人,何ていったっけ」
「太郎だろ」
「そうそう。名前はわかるんだけど苗字はなんだっけ」
「山・・・。なんだったかな。おい,太郎で検索してみろよ」
「へいへい。うわぁ〜〜,いっぱい出てくるよ。一太郎なんてほんとにいるんだ」
「なに感心してんだよ。うわっ,すごい量だ。この画面にはいないな」
「次のページはと・・・。ねえ,58ページもいちいち見るの」
「やってられないよ。山で検索してみろよ」
「うわわわ。140ページになっちゃった・・・・」

そんなあなたに正規表現

山.太郎で検索してみて」
「おっ,7件だ」
「山嵐,山形,山県,山川,山田,山中,山本」
「そうだ,山田だよ」

ほら,便利でしょう?

たった1文字なのに,文字列の途中の場合はほぼ絞り込みが完了してしまいます。たったひとつ覚えただけでも,あいまい検索のようなことができてしまうわけです。

なお,ピリオドや小数点のような『.』そのものが検索文字列に含まれる場合は,『\.』 のようにエスケープ文字を使ってメタキャラクタとしての意味を持たせないようにしてください。

 3.14159265 → 3\.14159265

上の例のような場合は,そもそも正規表現を使う必要がないわけですが,なにしろまだ『.』だけしか説明していませんから例も事欠くわけです(^^;

他になにがあるでしょうね。

 ../../.. 
日付とか
 ..:.. 
時刻とか
 a.....y 
aで始まってyで終わる7文字の単語とか

「とか」と言うのは,一種の言い逃れですね。この例は前後にスペースを置いて,一応他と隔絶した文字列にしてありますが,3番目の例などは,

…などにマッチします。

こんなパターンでは,もちろん色々とゴミも拾ってしまいますが,後述の文字クラスを使って文字の範囲を限定してやれば,ほぼ間違いなく目的の文字列にマッチさせることができるようになるでしょう。先が楽しみですね。(^^)


The VZ resources. ©2002 by mezala. mailto:mezala@nifty.com