Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  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正規表現 完全解説をご覧ください。

  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。