gudn tach!
Ich will in einem String von bis zu 5Mio Zeichen (Messreihen) das erste Vorkommen einer Zeitmessung des Formats hh.mm.ss.ttt finden. Meine RegEx dazu muss glaube ich $Regex="/[0-9]{2}.[0-9]{2}.[0-9]{2}.[0-9]{3}/"; heißen.
ja, oder etwas kuerzer (aber afais nicht schneller):
/(?:[0-9]{2}.){3}[0-9]{3}/
Aber mit welcher Funktion rufe ich sie auf?
in perl waere das mit "pos" schnell erledigt. in php ist es etwas aufwendiger.
if(preg_match($re, $str, $gefunden, PREG_OFFSET_CAPTURE))
echo $gefunden[1];
steht auch im manual: http://www.php.net/manual/en/function.preg-match.php
preg_mach()und ereg() suchen nicht die Position, sondern OB die RegEx vorkommt, bzw. basteln mir unnötigerweise Arrays und das Schlimmste: sie arbeiten den ganzen haystack ab (das dauert!!!) was völlig sinnlos ist, da das erste Vorkommen regelmäßig sehr früh ist.
huch, afaik bricht preg_match nach dem ersten vorkommen ab. bist du sicher, dass es bei nicht so ist?
prost
seth