From: Robert Klemme Date: 2008-05-26T18:48:38+09:00 Subject: Re: regular expression question... 2008/5/26 : > I'd like to make sort of a comment remover for C++. > > If there's a source file like bellow... > > > // 1234 > 12//34 > ///1234 > 12///34 > > and my code is... > > file = open("source.txt", "r") > file.each_line {|line| > if line.match /(.*)\/\// > puts $1 if $1.length > 0 > end > } > file.close > > result is... > > 12 > / > 12/ > > but!, what I expected is~ > > 12 > 12 > > What's wrong with this code...(I think I may not understand regular > expression totally...) and what should I do for this? Additional remarks: using the block form of File.open is usually better because code will be more robust. Here's another solution: File.foreach "source.txt" do |line| puts line.sub(%r{//.*}, '') end Kind regards robert -- use.inject do |as, often| as.you_can - without end