ルビーの正規表現の問題、そして何らかの理由で、ルビーのgsubメソッドでこれを1行で必要とします
入力sample
文字列変数が以下のような複数行の文字列であるとします
begin1 item abc item abc item
extra end1
begin2 item abc item abc extra end2
begin1 item abc item abc extra end1
ルールは、item
ブロック内の which をすべてbegin1
に変更end1
するlove
ことです。複数行にわたる場合があります
置換後、出力sample
は次のようになります
begin1 love abc love abc love
extra end1
begin2 item abc item abc extra end2
begin1 love abc love abc love end1
解決策はこのようなものです
puts sample.gsub!(/(begin1.*)item*(.*end1)/m,'\1love\2')