Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
Keep It Simple, Stupid
 
PerlMonks  

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).


Comment on Re^3: How do I optimize a regular expression?
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (17)
As of 2014-04-18 18:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (471 votes), past polls