- ベストアンサー
正規表現について
一般に >>120 や >>19 といったものを (asd)>>120(asd) といったように置換するにはどのようにすれば良いのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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;