Perl 正規表現の基本

入力された文字列にyesという文字が含まれているか調べるプログラム


my $str = <STDIN>;

if ($str =~ /yes/) {
  print "Match!\n";
} else {
  print "No match\n";
}

$str =~ /yes/ という部分は、演算子=~にて入力された文字列にyesが含まれているかどうかを調べる。 含まれていればMatch!を返し、含まれていなければNo matchを返す。

大文字小文字は区別される為、Yesのように大文字が含まれていると、No matchを返す事になる。 スペースについても文字とみなされる為、y esなどはNo matchが返される。

メタ文字


正規表現/yes/では入力された文字列のどこにyesが含まれていてもマッチした。 これをメタ文字^を使用し/^yes/とすると、文字列のはじめにyesがマッチするかどうかを調べる。

入力された文字がyyesno yesであればNo matchとなりyesterdayyes!!!!!!!!などはMatch!となる。 また、正規表現/yes$/では、文字列の終わりとyesがマッチするかどうかを調べる事になる。