本日はまだおてんと様も昇ってないようですよ。正規表現は詳説正規表現でわりとやったので、一気にいくよん。
初めてのPerlのp122に正規表現のテスト用スクリプトが用意されています。問題1、2、3で使うので以下に引用。
#!/usr/bin/env perl -w while { chomp; if(/パターンをここに置く/) { print "Matched: |$`<$&>$'|\n"; } else { print "No match\n"; } }
1. fredを含む文字列にマッチする正規表現
文字列のどこかにfredがあれば良いので、
/fred/
ですね。/iオプションはないので
2. 少なくとも1個のaの後ろに任意個のbが続くような部分文字列を持った文字列にマッチする正規表現
/a+b*/
少なくとも1個は+、任意個は*。
3. 任意個の逆スラッシュの後ろに任意個のアスタリスクを持った文字列にマッチする正規表現
なんだか、ややこしそうだけど、
/\\*\**/
まぁ、そうでもない。
4. wilmaを含む文字列を表示するようなスクリプト
マッチしたら表示なので、
while(<>) { if (/[Ww]ilma/) { print $_; } }
な感じでいかがか。まだここでは文字クラスは出てないけど使っても良いよね。解答によると、print $_の$_はデフォルトなので必要ない。
5. fredとwilma両方を含む文字列を表示するようなスクリプト
単純に、条件でANDを取る。
while(<>) { if (/wilma/ && /fred/) { print; } }
正規表現ばかりであまりPerlしなかったな。

- 作者: Jeffrey E.F. Friedl,田和勝
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2003/05/26
- メディア: 単行本
- 購入: 4人 クリック: 241回
- この商品を含むブログ (106件) を見る