in reply to Re^4: why my reg ex matches greedy?
in thread why my reg ex matches greedy?
I don't see the relation between your link and that bit of the regex. However, that said, your skepticism of its utility seems justified. I tried to find a use for it, but I haven't been able to make \d{4,}? act any differently than \d{4}. It's either a useless construct, or a failure of my imagination in coming up with an appropriate test case.
Putting aside what YAPE::Regex::Explain says about it, when I looked at it originally, I thought "Yack! Perl is gonna bitch about that weird '?' character". I could think of a couple other interpretations, so I put together a bit of code to check 'em out:
my @tests = ( 'First case', '123456789second & third case', ); for my $t (@tests) { print "\nchecking '$t'\n"; + if ($t=~/(\d{4,}?)(.*)/) { print "A: $1, $2\n"; } if ($t=~/(\d{4,}?)(.*?)$/) { print "B: $1, $2\n"; } }
The other interpretations I could think of were:
An optional set of 4 or more digits, kind of like (?:\d{4,})?. If true, the first case would give us:
A: , First case'
Exactly 4 digits, like \d{4}, giving us:
checking '123456789second & third case' A: 1234, 56789second & third case B: 1234, 56789second & third case
4 or more digits, with as few as possible, yielding:
checking '123456789second & third case' A: 1234, 56789second & third case B: 123456789, second & third case
On reading the ...explain() output, I thought that I could perhaps make the third case come about. But what I actually got was:
$ perl xxxyyyzzz.pl checking 'First case' checking '123456789second & third case' A: 1234, 56789second & third case B: 1234, 56789second & third case
So I'm thinking that my initial surprise was justified, even though it's syntactically correct.
...roboticus
When your only tool is a hammer, all problems look like your thumb.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: why my reg ex matches greedy?
by GrandFather (Saint) on Jun 26, 2012 at 21:01 UTC | |
by roboticus (Chancellor) on Jun 26, 2012 at 22:27 UTC |