正規表現の演習1

 正規表現を勉強していきます。このペースでやっていってると、まともなプログラムが書けるようになるまで八年はかかるんじゃないかと推察されますが、べつに仕事でやってるわけじゃなし、気長にやればいいのかなあ、とそんな風に思うわけであります。

 というわけで早速やっていきましょう。ちなみにこのページを参考にさせていただきました。

 今回はある文字列に特定のパターンが含まれているかどうか調べる方法を勉強します。……こんな説明ではわかり辛いので、具体的な例を挙げることにします。例えば、変数$textの中身"abcde"に"bcd"というパターンが含まれているかどうかを調べるには

$text =~ /bcd/;

 という表現を使うことが出来ます。もしbcdが含まれていればこの式は、真の値を持ちます。含まれていなければ偽です。つまり、この表現をつかうのは条件文としてが主ということになりますね。たぶん。

 かように便利な正規表現ですが、すごいのはここからです。さっきは"bcd"という具体的なパターンにマッチするかどうかということが調べられるだけだったのですが、もっと抽象的に調べることもできます。例えば"bで始まって、間に1文字挟んでdで終わる"パターンとか"bで始まって間に何文字挟もうとも兎に角dで終わる"パターンが含まれているか調べることも可能なのです。

 たとえば"bで始まって、間に1文字挟んでdで終わる"パターンだとこういう書き方になります。

$text =~ /b.{1}d/