Perlについての質問箱 52箱目
■ このスレッドは過去ログ倉庫に格納されています
0036デフォルトの名無しさん
2012/05/10(木) 22:08:30.05$str = "DEFxkdmeABCidkDEFledxaoDEFasdDEF";
say "gr\t: ", $str =~ s/((?<=ABC).*?)DEF/\1def/gr;
$tmp = $str;
1 while ($tmp =~ s/((?<=ABC).*?)DEF/\1def/g);
say "while\t: $tmp";
ABCより後ろのDEFをdefにする正規表現なのですが、上記を実行すると
gr : DEFxkdmeABCidkdefledxaoDEFasdDEF
while : DEFxkdmeABCidkdefledxaodefasddef
となります。何故grの方はgオプションをつけているにも関わらず一度しか置換されないのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています