正規表現
正規表現を使ったパターンマッチング
my $drag = '欠陥収縮剤塩酸テトラヒドロゾリン';
if ( $drag =~ /塩酸/){ print '配合'; } # 変数$dragが「塩酸」という文字列を含んでいる
^ 文字列の先頭
if ( $drag =~ /^欠陥収縮剤/){ print '配合'; } # 変数$dragが「欠陥収縮剤」という文字列で始まる
$ 文字列の末尾
if ( $drag =~ /テトラヒドロゾリン$/){ print '配合'; } # 変数$dragが「テトラヒドロゾリン」という文字列で終わる
区切り文字の置き換え
「/.../」ではURLを判別したいときなど、スラッシュ自体がエスケープしても読みにくいコードになってしまう。
「m|...|」のようにすると読みやすい。
my $url = 'http://www16.big.or.jp/~zun/'; if ($url =~ m|http://|) { print 'WEBサイト'; }
パターンマッチ修飾子
- g 繰り返しマッチする
- i 大文字と小文字の区別をしない
- o 変数展開を1度だけ行う
- m 文字列を複数行として扱う
- s 文字列を単一行として扱う
- x 拡張正規表現