小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

mマッチ演算子の区切り文字について

mマッチ演算子の区切り文字は、通常『/』を使用します。
しかし、実は、任意の非英数字(空白文字は除く)でも大丈夫なのです。
またしかし、非英数字でもカッコ系は、開き/閉じのペアでないとなりません。
またまたしかし、以下の3つに関しては、注意が必要です。

  1. 『#』を使う場合は、mマッチ演算子との間にスペースを入れないこと(入れるとコメント認識される)。
  2. 『'』を使う場合は、パターン内で変数が展開されなくなる。
  3. 『?』を使う場合は、m??マッチ演算子になる(1回しかマッチしない)
use strict;
use warnings;

my $s = "abcxxxxabcyyyyabczzzz";
if ($s =~ m/abc/) {
   print "マッチした! \n"; 
}
else {
   print "マッチしない!\n"; 
}
if ($s =~ m@abc@) {
   print "マッチした! \n"; 
}
else {
   print "マッチしない!\n"; 
}
if ($s =~ m<abc>) {
   print "マッチした! \n"; 
}
else {
   print "マッチしない!\n"; 
}

my $a = 0;
while($s =~ m/abc/g) {
   $a++;
}
print $a, "\n";

$a = 0;
while($s =~ m?abc?) {
   $a++;
}
print $a, "\n";


にほんブログ村 IT技術ブログ Tipsへ