Re: [Try-out] Regexp do's and don'tsby demerphq (Chancellor)
|on Mar 28, 2005 at 10:55 UTC||Need Help??|
You should recommend people avoid constructs like: [Jj][Aa][Vv][Aa] as they are quite inefficient and also can blow out various optimizations just by their presence. Its better to write that (?i:Java). Also up until 5.9.2 perl doesnt optimise alternations very well so its advisable to use modules like Regexp::List or the like to preprocess
. OTOH as of 5.9.2 perl _does_ optimize them so using things like Regexp::List will only slow down your patterns (im hopeful by 5.10 these modules will be updated to Do The Right Thing Regardless™).
In fact if at all possible after that version it is recommended that you use alternations instead of using quantifier, bracketing. Ie,
will be more efficent that
as of 5.9.2, and in some circumstance massively more efficient.
I admit i wrote the optimization so im tooting my own horn here a bit. :-) But it is worth realizing that alternations in later perls can be signifigantly faster than other hypothetically equivelent patterns.