Perl/めも/正規表現Top / Perl / めも / 正規表現s///ee$r = '$1'; $str =~ s/(.*)/$r/e; # $strは'$1'に置換される $str =~ s/(.*)/$r/ee; # s/(.*)/$1/ と等価 $rr = '$r'; $str =~ s/(.*)/$rr/e; # $strは'$r'に置換される $str =~ s/(.*)/$rr/ee; # $strは'$1'に置換される $str =~ s/(.*)/$rr/eee; # s/(.*)/$1/ と等価 eを重ねるとevalを重ねるような評価になる。 ただし結局 /e な扱いなので HOGE$r などは評価できない。 # イバラの道 # $rに / が含まれると転ける eval "\$str =~ s/(.*)/$r/;"; 多分これが一番まとも # \1などは使えないがまだ機能する # eの数だけクオートがネストする $r =~ s/\}/\\\}/g; $str =~ s/(.*)/qq{qq{$r}}/ee; m//gマッチする箇所を抽出 push(@words, $str =~ /\w+/g); splitの罠# 多分意図しない動作 split(/(hoge)/, $string); # こっちが正解 split(/(?:hoge)/, $string); 前者は qw(1st hoge 2nd hoge 3rd) のような結果が返る。 他
|