Thorsten Steffen: Geschwindigkeit von Reguläre Ausdrücke

Beitrag lesen

hio,

spiel gerade mit Regulären Ausdrücken rum, wenn man mal ein wenig verstanden hat, können die Dinger auch Laune machen ;).
Im ernst, soll wirklich was brauchbares dabei herauskommen, im Endeffekt will ich logfiles nach gewissen Kriterien analysieren.

Bin gerade dabei in PHP ein Ausdruck für eine gültige URL zu definieren, als Vorlage dient dabei CheckRFC.pm (ist zwar in Perl, aber geht schon ;) aus dem SELFHTML-Forum und RFC 2396.
In CheckRFC.pm sind die einzelnen Bestandteile sehr strukturiert definiert.
Nun zu den Fragen, a.) was ist die genaue bedeutung von (?:[a-z]), hab zu dem ?: nichts im PHP-Manual finden können, obwohl das sehr schön funktioniert. Ist das ?: dann nicht wirklich ein subpattern oder wie?
b.) ist die Struktur, also der feine Aufbau der einzelnen Bestandteile nicht zu sehr Performance-lastig? mal nen schnellen Test auf 1000 Zeichenkette hatte ich Geschwindigkeitsunterschiede von ca 30-40%, ist es dann vielleicht nicht Praxistauglicher nicht

$lowAlpha = "(?:[a-z])";
$upperAlpha = "(?:[A-Z])";
$alpha = "(?:$lowAlpha|$upperAlpha)";

sondern

$alpha = "(?:[a-zA-z])";

zu schreiben? auch wenn die Struktur etwas leidet.

gl & hf

Thorsten