Wayne Blair wrote: > > ----- Original Message ----- > From: "jonas" <jonas.bulow / servicefactory.se> > To: "ruby-talk ML" <ruby-talk / ruby-lang.org>; <ruby-talk / netlab.co.jp> > Sent: Tuesday, June 05, 2001 3:01 PM > Subject: [ruby-talk:16245] line numbers in multiline regular expressions. > > > Hi, > > > > Here is my 5 minute attempt to create a program that extracts all > > comments in a C source file containing the string "TODO": > > > > todo_comments = File. > > open(ARGV[0], "r"). > > read. > > scan(/\/\*.*?\*\//m). > > delete_if { |c| c !~ /TODO/ } > > > > It works fine, but I really would like to have access to the line number > > where the scan matches. Is that easy to accomplish or do I have to > > rethink the structure of the program from scratch? > > > > /j > > > The scan can match across multiple lines, though, right? Can you give an > example of input and desired output? Input: ------------------------8<------------- /* comment 1 */ /* * comment 2 */ /* * TODO foo bar * flopp flerp plopp plerp blipp * blopp boo.com */ ------------------------8<------------- Output: I would like the line number of the line where "TODO" match and it's the comment's complete content, i.e the complete last comment above.