Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re^3: How do I optimize a regular expression?

by moritz (Cardinal)
on Dec 07, 2009 at 17:02 UTC ( #811555=note: print w/replies, xml ) Need Help??

in reply to Re^2: How do I optimize a regular expression?
in thread How do I optimize a regular expression?

but I'm more interested in how to make expressions work faster

Then I'll try to give you a few general hints:

  • Learn about backtracking, and make sure you avoid it wherever possible
    • Anchor your regexes if possible
    • Try to avoid .*? and .*
    • Use backtracking-suppressing groups whenever possible
  • Try to use literal strings where possible. The regex engine is smart enough to anchor them automatically as an optimization (in certain cases)
  • Only capture (with (...)) when you actually need it

Regexp::Assemble promises (among other things) to bring the power of trie optimizations to earlier perls, maybe it's worth a try (and less hassle than updating your perl version).

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2018-01-19 00:26 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (215 votes). Check out past polls.