1. Perl
  2. 標準関数
  3. here

quotemeta関数 - 正規表現文字のエスケープ

quotemeta関数を使用すると、正規表現で利用される文字列を通常の文字として扱うことができます。ワード文字以外のすべての文字の直前に\がつけられます。

# 正規表現文字列を通常の文字として扱う
$ret = quotemeta $str;

正規表現文字を含んだ文字列を通常の文字列としてパターンマッチさせるサンプルです。

# 正規表現文字を含んだ文字列を通常の文字列としてパターンマッチ
my $message = 'This message contains a{2}';

my $match = "a{2}";
$match = quotemeta $match;

if ($message =~ /$match/) {
  print "Match!\n";
}

quotemetaは正規表現の特殊文字である\Qと同じ意味を持ちます。上記のquotemetaは以下の記述と同じ意味にないます。

# \Qを使ってquotemetaと同じ意味を表現
my $match = "\Qa{2}";

正規表現については実践で役立つPerl正規表現 完全解説をご覧ください。

quotemeta関数の動画解説

Perlテキスト処理のエッセンス
  • 初級者向け・テキスト処理と正規表現の基本をマスター
業務に役立つPerl
  • 実務者向け・ログ解析など日本語を含むテキスト処理の実践!
Perlクラブ
  • 仲間と出会い
    ゆとりあるエンジニアライフを送る