• ベストアンサー

正規表現について

一般に >>120 や >>19 といったものを (asd)>>120(asd) といったように置換するにはどのようにすれば良いのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#140045
noname#140045
回答No.1

一応、動作確認したので大丈夫だと思います。 以下のようにして確認しました。 ミソは、 (\d\d\d),(\d\d)でそれぞれ3文字、2文字の数値(0-9)と一致しますので、桁数ごとに桁数が多い順に処理しないとダメです。 $1が、その数値に対応する文字列となります。 (間違っていないはずなので、やってもらえばわかると思います) $s = ">>120\n"; $s =~ s/>>(\d\d\d)/(asd)>>$1(asd)/; printf $s; $s = ">>19\n"; $s =~ s/>>(\d\d)/(asd)>>$1(asd)/; printf $s;

関連するQ&A

専門家に質問してみよう