Mailinglisten-Archive |
Dirk wrote: > Danke funktioniert. Nur irgendwie steige ich > da nicht ganz durch, was den RegEX Kram angeht. > Vor allem aber die Unterschiede zw. preg_match() > und ereg(). Ich finde auch nirgend eine GUTE > Doku zu dem kram. Dann versuche ich das mal für Dich aufzudröseln: preg_ sind Perl-kompatible Funktionen und die Syntax ist ereg ist leicht verschieden. preg_ Funktionen benötigen einen Delimiter. Dieser ist das erste und das letzte Zeichen und darf ansonsten im eigentlichen Ausdruck nicht vorkommen. Ich habe z.B. "|" als Delimiter gewählt, gängig sind auch Slashes (/) und Gradzeichen (°). Nach dem letzten Delimiter stehen die Modifier, in diesem Fall das kleine i. Es sorgt einfach dafür, dass die Gross- / Kleinschreibung ignoriert wird. Nach dem ersten und vor dem letzten Delimiter kann man Hinweise geben, wo der Treffer im Gesamtkontext sein muss. "^" Bedeuetet am Anfang und "$" am Ende. Also: Der Treffer muss vom Anfang bis zum Ende gehen, andere Zeichen davor oder danach sind ungültig. Nun zum Kern in preg_match('|$ ... ^|i') [] Dies sagt aus, dass irgendeines der Zeichen dazwischen ok ist, das folgende Plus ([]+) beduetet: Beliebig viele Zeichen davon aber mindestens eines. Die Zeichenauswahl war: a-z_\.\-0-9 a-z -> bel. Zeichen von a bis z _ -> oder ein Unterstrich \. -> oder ein Punkt, der ist escaped da ein Punkt ein reguläres Sonderzeichen wäre, nämlich "be- liebiges Zeichen" \- -> oder ein Minus, das ist escaped da ein Minus ein reguläres Sonderzeichen wäre, nämlich "bis" wie etwa in "a-z" 0-9 -> oder ein Zeichen von 0 bis 9 Alles klar? :-) > Ich finde auch nirgend eine GUTE > Doku zu dem kram. Das PHP Magazin hatte eine recht gute Artikelserie zu dem Kram. Davor waren RegExes auch für mich ein rotes Tuch, aber wenn man es einmal geschnallt hat (ist wirklcih nicht schwer) werden aus den ASCII-Art Dingern plötzlich sinnvolle Regeln! ;-) Gruss, Andreas -- http://www.andreas-demmer.de
php::bar PHP Wiki - Listenarchive