Thread Reguläre Ausdrücke durch anderes ersetzten... (59 answers)
Opened by ppm1 at 2004-02-16 23:16

Strat
 2004-02-17 00:22
#80107 #80107
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=ppm1,16.02.2004, 22:16]man sage mir das das suchen mit regulären Ausdrücken sehr Serverintensiv sei?[/quote]
ja, das stimmt
nein, das ist bloedsinn

das haengt davon ab, was man sucht; wenn man genau eine fixe zeichenkette in einer laengeren sucht, dann ist index (oder rindex) haeufig schneller. wenn man komplexere sachen sucht, dann ist ein regulaerer ausdruck oft schneller als mehrere aufrufe von index

bei regulaeren ausdruecken sollte man, wenn moeglich, auf flags wie /i verzichten, weil dadurch einiges an optimierungsmoeglichkeiten verloren geht, und die regex-engine deshalb nicht besonders effektiv arbeiten kann.

wenn moeglich, sollte man auch anker ^ und $ verwenden.

/abc(?:def|geh)/ ist meistens schneller als (?:abcdef|abcgeh)/

capturing nur dort, wo es noetig ist, also nicht (ab|cd), wenn man abcde spaeter nicht mehr braucht, sondern (?:ab|cd)

wenn nur a oder b gross oder klein sein koennen, dann besser
(?i:a|b) oder besser noch [aAbBc-z] matchen

die variablen $& $` $´ sollte man nicht verwenden, weil die immer noch recht viel laufzeit kosten koennen

die option /o kann auch ganz schoen geschwindigkeit bringen
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Reguläre Ausdrücke durch anderes ersetzten...