# Regular Expression matching biggest possible

**URL:** <https://www.ruby-forum.com/t/regular-expression-matching-biggest-possible/56609>\
**Category:** Ruby\
**Created:** [April 1, 2006, 6:00pm UTC](https://www.ruby-forum.com/t/regular-expression-matching-biggest-possible/56609 "2006-04-01T18:00:33Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 1, 2006, 6:00pm UTC](https://www.ruby-forum.com/t/regular-expression-matching-biggest-possible/56609/1 "2006-04-01T18:00:33Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 1, 2006, 6:12pm UTC](https://www.ruby-forum.com/t/regular-expression-matching-biggest-possible/56609/2 "2006-04-01T18:12:42Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 1, 2006, 7:01pm UTC](https://www.ruby-forum.com/t/regular-expression-matching-biggest-possible/56609/3 "2006-04-01T19:01:57Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 1, 2006, 8:42pm UTC](https://www.ruby-forum.com/t/regular-expression-matching-biggest-possible/56609/4 "2006-04-01T20:42:40Z")

</div>

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 🙂  
> V.-

–  
[http://www.braveworld.net/riva](http://www.braveworld.net/riva)
