/*コメント*/を取り除く

cf. どう書く?.org – /*コメント*/を取り除く

正規表現の最短一致を使ってこれでいいはず……だと思うんだけど。

def remove_comment(str)
str.gsub(/\/\*.*?(\*\/|\z)/,"")
end
samples = %w( AAA
               AAA/*BBB*/
               AAA/*BBB
               AAA/*BBB*/CCC
               AAA/*BBB/*CCC*/DDD*/EEE
               AAA/a//*BB*B**/CCC
            )
samples.each do |str|
puts str
puts " => #{remove_comment(str)}"
end

実行。

^o^ >ruby remove_comment.rb
AAA
=> AAA
AAA/*BBB*/
=> AAA
AAA/*BBB
=> AAA
AAA/*BBB*/CCC
=> AAACCC
AAA/*BBB/*CCC*/DDD*/EEE
=> AAADDD*/EEE
AAA/a//*BB*B**/CCC
=> AAA/a/CCC