SOFTELメモ Developer's blog

正規表現文字列のエスケープは quotemeta

2011/09/22 develop

問題

Perlで正規表現を使っていたら、エラーが発生した。

Unmatched ) in regex; marked by <-- HERE in m/a) <-- HERE {2}/ at perl.pl line 123.

答え

エスケープしましょう。

my $match = "a)hogehoge";

をそのまま if ($message =~ /$match/) { ... } などに使っていたら、

$match = quotemeta $match;

してから使う。

phpの場合なら quotemeta() という関数で。

関連するメモ

コメント