PerlならサンプルコードPerl入門

2010-03-29

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

  1. Perl
  2. 関数
  3. here

正規表現文字列を通常の文字として扱うには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正規表現 完全解説をご覧ください。

  1. Perl
  2. 関数
  3. here

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証