in reply to Re: Trying to count the captures in a compiled regular expression
in thread Trying to count the captures in a compiled regular expression
Ack. I guess spending two days trying to grok yacc and Parse::Yapp led me to choose to do it the hard way. Thanks for a healthy does of simplicity.
Unfortunately, the following regexp break your very good idea:
$regex = qr/foo/; # should return 0
That only means your code needs at least one capture:
sub captures { my $re = shift; return scalar ( @_ = '' =~ /(?:($re))?/ ) - 1; }
This passes my whole test suite, expect for this regexp:
$regex = qr/(?x) # (comment) (?-x) # (capture) (?x) # (comment)/;
Which dies horribly with the message:
Unmatched ( in regex; marked by <-- HERE in m/(?:(( <-- HERE ?-xism:(?x) # (comment) (?-x) # (capture) (?x) # (comment))))?/
So, $regex compiles, but qr/(?:($regex))?/ doesn't? I'm lost.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Trying to count the captures in a compiled regular expression
by hv (Prior) on May 03, 2004 at 08:28 UTC |
In Section
Seekers of Perl Wisdom