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