Beefy Boxes and Bandwidth Generously Provided by pair Networks Joe
No such thing as a small change
 
PerlMonks  

Re^3: tight loop regex optimization

by ikegami (Pope)
on Nov 02, 2011 at 05:29 UTC ( #935300=note: print w/ replies, xml ) Need Help??


in reply to Re^2: tight loop regex optimization
in thread tight loop regex optimization

I don't really grok the look-around assertion

Think of it as a subroutine call. The engine tries to match the sub pattern at the current location, but it current location doesn't change.

+------------ Matched at pos 0. | +-------- Matched at pos 1. | |+------- Matched at pos 2. | || +----- Matched at pos 1. | || |+---- Matched at pos 2. | || ||+--- Matched at pos 3. | || ||| v vv vvv 'abcd' =~ /a(?!BC)..d/ # Matches

Since the position on the outer regex isn't affected, replacements don't take what the sub expression matched into consideration.

my $s = 'abcd'; $s =~ s/a(?=bc)/x/; # xbcd my $s = 'aefg'; $s =~ s/a(?=bc)/x/; # abcd

The substitution pattern in your version has one less \05. Is that intentional?

Yes. One less \05 is being replaced, so one less \05 should be added.

I'm not familiar enough with this code or its expected output to really tell when it's working or when I might introduce a subtle bug somewhere

Then I guess the next order of business is to figure out the code and write test cases.


Comment on Re^3: tight loop regex optimization
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (19)
As of 2014-04-16 16:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (432 votes), past polls