Dieter Raber: ereg_replace ... ich kriegs nicht hin

Beitrag lesen

Hallo RuD,

An Hilfswerkzeugen fuer regulaere Ausdruecke kenne ich folgende Programme bzw. Seiten:

Anstatt ereg_xx waerest Du mit preg_xx besser bedient, dazu ein Zitat aus dem PHP-Manual:
Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().

Grundsaetzlich finde ich regulaere Ausdruecke recht unkompliziert, wenn ich natuerliche Sprache in Regex-Syntax uebersetze, zur Verdeutlichung einmal einen (einfachen und sehr unvollstaendigen) Ausdruck ueber eine URL:
http://www.example.com
ist der Ausdruck 'http://'[1], gefolgt von einer Anzahl an Buchstaben oder Zahlen [2], gefolgt von einem Punkt[3], gefolgt von einer Anzahl an Buchstaben oder Zahlen[4], gefolgt von einem Punkt[5], gefolgt von einer Anzahl an Buchstaben oder Zahlen[6].
Als RegEx sieht das z. B. so aus:
[1] http://
[2] [a-zA-Z0-9]+ oder aber \w+, das Plus fuer 'einmal oder mehrmals'
[3] . , der Backslash, damit der Punkt ein Punkt ist und nicht 'beliebiges Zeichen'
[4] siehe [2]
[5] siehe [3]
[6] siehe [2]
Das ergibt den Ausdruck http://[a-zA-Z0-9]+.[a-zA-Z0-9]+.[a-zA-Z0-9]+

Nochmal, der Ausdruck ist so nicht fuers wahre Leben zu gebrauchen, sondern soll nur exemplarisch aufzeigen, wie man von natuerlicher Sprache nach RegEx uebersetzt.

Gruß,

Dieter