SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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

問題

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() という関数で。

関連するメモ

コメント