Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Count capturing parentheses in a compiled regexp

by hv (Prior)
on May 02, 2004 at 12:12 UTC ( [id://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.

Hugo

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?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-04-25 12:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found