• ベストアンサー

正規表現でマッチした数字文字を計算して置換することを1行で記述できますか?

正規表現でマッチした数字文字を計算して置換することを1行で記述できますか? たとえば 2004/01/01 --> 2004/01/17 2004/01/02 --> 2004/01/18 2004/01/03 --> 2004/01/19 $a = '2004/01/01'; $a =~ s/([0-9]{4})\/([0-9]{2})\/([0-9]{2})/\1\/\2\/???????/; ?????の部分です。

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

  • ベストアンサー
  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.1

sprintfを使えばできます。 ???????以外のところも変更しますけど。 $a = '2004/01/01'; $a =~ s/([0-9]{4})\/([0-9]{2})\/([0-9]{2})/sprintf "$1\/$2\/%d", $3+16/e; 最後の e をお忘れなく。

関連するQ&A

専門家に質問してみよう