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™)./Lists|of|words/
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/(cars|cart|carry|car)/
as of 5.9.2, and in some circumstance massively more efficient./(car([st]|ry)?)/
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.
In reply to Re: [Try-out] Regexp do's and don'ts
by demerphq
in thread Regexp do's and don'ts
by muba
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |