Carsten: Regulärer Ausdruck (wie geht das eigentlich?)

Beitrag lesen

Hallo Saadat!

Beispiel: 26588-26989

Wie lautet der reguläre Ausdruck, der nur die "-" Zeichen zwischen den Postleitzahlen findet und durch was anderes ersetzt, d. h. es stehen auch andere "-" Zeichen innerhalb der Zeichenkette, diese sollen aber davon unberührt bleiben.

Welche Zeichen sollen vorkommen:
Fünf Ziffern ein Bindestrich und noch fünf Ziffern.
also erstaml Ziffern, darauf passt \d.
Dann 5 Stück: \d{5}
Der Bindstrich passt auf den Bindestrich.
Zusammengebaut:
  \d{5}-\d{5}
Nun möchtest du im Ergebnis ja die Ziffern wieder haben, dazu muss der jeweils passende Teil geklammert werden. (Dann kann man drauf zugreifen)
 (\d{5})-(\d{5})
http://www.php.net/manual/en/pcre.pattern.syntax.php

So, jetzt das ganze noch in die preg_replace funktion einsetzen:

$neu=preg_replace("/(\d{5})-(\d{5})/","\1-\2",$alt);
                                          |   |
                                          |   +--zweite Klammer
                                          +------erste Klammer
                                                 einsetzen

Gruss,
 Carsten