Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Count capturing parentheses in a compiled regexp

by hv (Parson)
on May 02, 2004 at 12:12 UTC ( #349802=note: print w/replies, xml ) Need Help??

in reply to Count capturing parentheses in a compiled regexp

Nice snippet, but a couple of problems: the outer lookahead needs to be //s, else eg:

qr{( x )}x;
will fail.

Also, this will find parens in embedded code and comments and treat as captures. If that doesn't seem worth worrying about it'd be enough to add a caveat I guess, else I think you can mimic perl's simplistic parsing reasonable easily for the code (just count to the balancing close-brace). Comments may actually be the trickiest, since you'll need to know when //x is in force:

qr{ (?x: # (comment) ) (?-x: # (capture) ) }

Oops, another one: parens in [ ... ] should be ignored too; I'm not sure how easy those would be to parse, since not every ] closes the selection.


Replies are listed 'Best First'.
Re: Re: Count capturing parentheses in a compiled regexp
by BooK (Curate) on May 02, 2004 at 15:20 UTC

    Thanks a lot for finding these shortcomings in my code. :-) I'll submit updated versions as I correct them.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://349802]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (11)
As of 2017-10-19 20:49 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (257 votes). Check out past polls.