Hi.
Probier es mal hiermit:
$t = "26588-26989";
$anderes_zeichen = "x";
$t = preg_replace("/(\d{5})-(\d{5})/","\1$anderes_zeichen\2",$t);
Erklärungen:
Zeile 1+2: leicht verständlich, einfache Variablenzuweisung.
Zeile 3: Reguläre Substitution nach Perl-Syntax.
/ / schließt die Regex ein.
\d ist eine Ziffer, wir brauchen 5 Stück davon, dafür ist die {5} dahinter. \d{5} bedeutet: genau 5 Ziffern.
Die Klammern sind dazu da, alles was vor und hinter dem - steht, einzufangen, später kann per \1 und \2 (hier per \ escaped, daher \1 und \2) wieder aufgerufen werden.
Kurz: es werden 5 Ziffern, dann ein -, dann wieder 5 Ziffern gesucht. Wenn dies zutrifft, werden die Ziffern genommen und zusammen mit $anderes_zeichen wird ein neuer String erstellt. Falls mehrere Funstellen im String sind, werden alle ersetzt.
Ich hoffen, das war verständlich! :-)
MfG, Arne P.