(((あああ)))いいい(((ううう)))
のような文字列で(((と)))に囲まれている部分を全部空白文字に変換したい場合、単純に次のようにやってしまうと、残って欲しい「いいい」の部分もきえてしまう。
test = "(((あああ)))いいい(((ううう)))" puts test.gsub(/\(\(\(.+\)\)\)/, '')
実行結果
空白になり、「いいい」が消えてしまう。これは、外側の(((と)))に「いいい」が囲まれているため。
これを防ぐためには、(((と)))に囲まれている最短の中身だけをマッチングさせる必要があり、それには正規表現の?をつかう。
test = "(((あああ)))いいい(((ううう)))" puts test.gsub(/\(\(\(.+?\)\)\)/, '')
実行結果
いいい