Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^6: why my reg ex matches greedy?

by GrandFather (Saint)
on Jun 26, 2012 at 21:01 UTC ( [id://978507]=note: print w/replies, xml ) Need Help??


in reply to Re^5: why my reg ex matches greedy?
in thread why my reg ex matches greedy?

It's different if there is some following match condition:

use strict; use warnings; for my $reg ('(x\d{3,}?)', '(x\d{3,}?x)', '(x\d{3,})', '(x\d{3})') { for my $str ('xx', 'x12x', 'x123456x', 'x12x x123x') { print "Matched using $reg: $1\n" if $str =~ $reg; } }

Prints:

Matched using (x\d{3,}?): x123 Matched using (x\d{3,}?): x123 Matched using (x\d{3,}?x): x123456x Matched using (x\d{3,}?x): x123x Matched using (x\d{3,}): x123456 Matched using (x\d{3,}): x123 Matched using (x\d{3}): x123 Matched using (x\d{3}): x123
True laziness is hard work

Replies are listed 'Best First'.
Re^7: why my reg ex matches greedy?
by roboticus (Chancellor) on Jun 26, 2012 at 22:27 UTC

    GrandFather:

    Thanks. I updated your code to make it a little more visually obvious to me, then added a couple cases. Now that I see what the difference is, I doubt that I'd ever use it. Not because it isn't useful, but rather because if I ever need it, I'm sure I'll have long forgotten it. But it's certainly educational.

    For grins, here's what I came up with:

    $ cat splok.pl use strict; use warnings; my @regs = ('(x\d{3,}?)', '(x\d{3,}?x)', '(x\d{3,})', '(x\d{3})', '(x\d{3,}x)', '(x\d{3,}?x?)'); my @strs = ('xx', 'x12x', 'x123456x', 'x12x x123x', 'x123456y'); printf "%-12.12s ", $_ for " ", @regs; print "\n"; for my $str (@strs) { printf "%-12.12s ", $str; for my $reg (@regs) { printf "%-12.12s ", ($str=~$reg) ? $1: '-nope-'; } print "\n"; } $ perl splok.pl (x\d{3,}?) (x\d{3,}?x) (x\d{3,}) (x\d{3}) (x\d{ +3,}x) (x\d{3,}?x?) xx -nope- -nope- -nope- -nope- -nope +- -nope- x12x -nope- -nope- -nope- -nope- -nope +- -nope- x123456x x123 x123456x x123456 x123 x1234 +56x x123 x12x x123x x123 x123x x123 x123 x123x + x123x x123456y x123 -nope- x123456 x123 -nope +- x123

    (As you can tell, I like things laid out in grids. I organize lots of stuff with database tables and spreadsheets...)

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://978507]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (2)
As of 2024-04-26 00:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found