Regular Expression matching biggest possible


#1

Hi,

I would like to remove comments from a JavaScript file with a Ruby
script. I discovered that my regular expression matching seems to match
the biggest possible substring.

def show_regexp(a,re)
if a =~ re
“#{$`}<<#{$&}>>#{$’}”
else
“no match”
end
end
puts show_regexp("/* some comment / some code / some other comment
/", //*[\w\W]*//)

This outputs

<</* some comment / some code / some other comment */>>

and I was hoping for it to find the individual comments.

<</* some comment />> some code <</ some other comment */>>

What should my regular expression be?

Thanks,
Peter


#2

You can make a regexp non greedy with a ?, that is

//*[\w\W]*?*//
^


#3

Chris A. wrote:

You can make a regexp non greedy with a ?, that is

//*[\w\W]*?*//

Thanks Chris,

Now I can easily find what i need in the manual:)

Peter


#4

removed_email_address@domain.invalid wrote:

Hi,

I would like to remove comments from a JavaScript file with a Ruby
script. I discovered that my regular expression matching seems to match
the biggest possible substring.
Wow, I only had to wait 20 minutes before posting (or you could have
checked the regexp madness thread).
Seems today is greedy regexp day :slight_smile:
V.-


http://www.braveworld.net/riva