hi there
just a quick question
what is the difference between greedy and non greedy quantifiers?
cheers
···
--
Posted via http://www.ruby-forum.com/.
hi there
just a quick question
what is the difference between greedy and non greedy quantifiers?
cheers
--
Posted via http://www.ruby-forum.com/.
The greediness.
Seriously: why don't you just try it out in IRB?
s=("a"*10 + "b")
s+=s
s.scan /\w+b/
s.scan /\w+?b/
Cheers
robert
2008/1/7, Johnathan Smith <stu_09@hotmail.com>:
just a quick question
what is the difference between greedy and non greedy quantifiers?
--
use.inject do |as, often| as.you_can - without end
what is the difference between greedy and non greedy quantifiers?
I agree the best way to find out is to audition it in IRB, but just
for completeness, the difference is that a greedy quantifier will grab
the largest possible match, and the non-greedy quantifier will grab
the smallest possible match.
e.g.:
/<.+>/.match("<b>stuff</b>")[0]
=> "<b>stuff</b>"
/<.+?>/.match("<b>stuff</b>")[0]
=> "<b>"
The only difference is +?, the non-greedy quantifier; using it, you
get the first possible match, instead of the biggest. QED.
--
Giles Bowkett
Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com
Robert Klemme pisze:
2008/1/7, Johnathan Smith <stu_09@hotmail.com>:
just a quick question
what is the difference between greedy and non greedy quantifiers?
The greediness.
Seriously: why don't you just try it out in IRB?
s=("a"*10 + "b")
s+=s
s.scan /\w+b/
s.scan /\w+?b/
There's also possessive one (doesn't backtrack)
ruby 1.9 or jruby 1.1 (trunk)
irb(main):011:0> "aa" =~ /a++a/
=> nil
lopex
You can get Ruby 1.8 to not backtrack as well:
$ ruby -ve 'p "aa" =~ /(?>a+)a/'
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-darwin9.1.0]
nil
James Edward Gray II
On Jan 7, 2008, at 11:49 AM, Marcin Mielżyński wrote:
Robert Klemme pisze:
2008/1/7, Johnathan Smith <stu_09@hotmail.com>:
just a quick question
what is the difference between greedy and non greedy quantifiers?
The greediness.
Seriously: why don't you just try it out in IRB?
s=("a"*10 + "b")
s+=s
s.scan /\w+b/
s.scan /\w+?b/There's also possessive one (doesn't backtrack)
ruby 1.9 or jruby 1.1 (trunk)irb(main):011:0> "aa" =~ /a++a/
=> nil