Masaの備忘録 - 正規表現 関連
PerlのTips【目次】

トップページ -> Perl -> 正規表現 関連

正規表現 関連

メタ文字を自動的にエスケープ

メタ文字を自動的にエスケープするには、自動エスケープを行いたい文字列を「\Q」と「\E」で囲めばよい。
こうすることにより、メタ文字が連続している文字列の場合でも、一個一個エスケープしなくて済む。

(例)
マッチしたい文字列 : (^.^)b
   $sentence = "kaomoji(^.^)bkaomoji";
   $match = "(^.^)b";
   if($sentence =~ m/\Q$match\E/){
      print("match!\n");
   }

トップページ -> Perl -> 正規表現 関連



特定の文字列の交換


例えば、XとYを交換したいとする。このような場合は、下記のようにtrを用いる。
tr/XY/YX/; # この場合、交換対象は、$_ の中身
これで、XとYを交換できる。置換前と置換後の文字数は同じにしておく。

以下の例の方がtrの処理の仕方が分かりやすいかもしれない。
tr/abcde/01234/;
上記の場合、aを0に、bを1に、cを2に、dを3に、eを4にする。
つまり、$_ に、abcmart が入っていたとすると、012m0rt となる。

さらに、連続した範囲の指定もでき、
tr/a-z/A-Z/;
とすると、小文字を大文字に変換することも可能である。


$_ 以外の変数に tr を用いたい場合は、=~ を用いる。
$text = "abcmart";
$text =~ tr/a-z/A-Z/;
print "$text\n";
上記のようにすると、ABCMARTが出力される。

トップページ -> Perl -> 正規表現 関連


livedoor Wiki関連リンク