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

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 examining the Monastery: (4)
As of 2017-04-29 11:47 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (531 votes). Check out past polls.