perl では、マッチに対して別の置換演算子が実行された後に、マッチした文字列をそれ自体で置き換えたい場合がよくあります。たとえば、引用符で囲まれた文字列を見つけてスペースを削除する必要があるアプリケーションがあります。これを行う1つの方法は次のとおりです。
while($str =~ s/"([^"])+"//){
$temp = $1;
$temp2 = $temp;
$temp =~ s/ /_/g;
$str =~ s/$temp2/$temp1/;
}
これも可能と思われます:
$str =~ s/"([^"])+"/replace_spaces($1)/gx;
sub replace_spaces(){
$word = shift;
$word =~ s/ /_/g;
return $word;
}
どういうわけか正規表現内に正規表現をネストすることによって、これを行う純粋な正規表現の方法はありますか?