Hi
kann man auch noch ein bestimmtes Zeichen z.B. % von der Ersetzung ausschliessen?
klar geht das:
$string = preg_replace('/[^\d%]+/', ',', $string)Wegen dem [^ wird nur das ersetzt was nicht in den eckigen Klammern steht. Darum diesmal das kleien d (alle Ziffern).
Alle Zeichen die auch nicht ersetzt werden sollen, kannst du hintendran hängen (und ggf. escapen).ich darf jetzt wohl nicht erzählen, dass ich gerade ein wildes Konstrukt dafür erstellt habe, oder? ;-)
ich habe noch folgendes geschrieben
if(substr($string, 0, 1) == ','){
$string = substr($string, 1);
}
if(substr($string, -1) == ','){
$string = substr($string, 0, -1);
}
> geht das auch noch in den Regex rein?
>
> ich sollte mich mal damit intensiver beschäftigen :-)
>
> Sven
Das war schon ein bisschen aufwendiger^^
Die einfachere Variante ist sicher mit zwei replace Funktionen:
$string = preg\_replace('/(^,)|(,$)/','',preg\_replace('/[^\d%]+/', ',', $string ));
Aber ich habs auch in einen Regexp reinbekommen:
$string = preg\_replace('/([^\d%])+/e', 'substr($string ,0,1) == substr($1,0,1) || substr($string ,-1,1) == substr($1,-1,1) ? "" : ","', $string ).'<br />';
Da bei der zweiten Variante noch mit PHP evaluiert wird, halte ich das für auswendiger als die erste Variante.
mfg
Blizz