Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
Perl: the Markov chain saw
 
PerlMonks  

Re: reset named capture buffer within regex

by tobyink (Abbot)
on Nov 22, 2012 at 16:28 UTC ( #1005156=note: print w/ replies, xml ) Need Help??


in reply to reset named capture buffer within regex

I can't seem to find any way of resetting named captures mid-regexp. (And have managed several segfaults trying.)

Why exactly do you need to reset it? Is it just because you want the right-most match instead of the left-most match? If so, take a look at %-.

++ for the question though; I'll be interested to read any other replies.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'


Comment on Re: reset named capture buffer within regex
Download Code
Re^2: reset named capture buffer within regex
by mhgoeschl (Novice) on Nov 22, 2012 at 17:11 UTC
    the purpose is matching sequences (variable length) of tokens out of a larger list (variable length) of tokens with each token carrying a number of additional attributes (e.g. number) that qualifies it as part of a token group, e.g. A1 B1 b1 B1 b2 C2 c2 d3 D3. For example, looking for sequences of B|b that are part of the same (number) group. Results here: 'B1 b1 B1' and 'b2'. Unfortunately, it is no option to slice the sequence by the 'group' (number) attribute and do the token matching on every subgroup, because there are other attributes on the tokens that bridge the groups and are being considered in the overall expression (to complex to show here). The philosophy of the current pattern attempts to match a token sequence, loads the group attribute of the first token in <mybuf> and continues matching using <mybuf> as a target for attributes of upcoming tokens. This works perfectly, however I need the option to break this sequence (reset <mybuf> without actual match) in certain cases.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (8)
As of 2014-04-19 09:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (478 votes), past polls