Dies hängt stark davon ab, wie Ihre Daten in $r_val
formatiert sind , aber ein guter Anfang wäre, es zu versuchen:
$r_val = preg_replace('/(?<!\.)\b0\b(?!\.)/', '-', $r_val);
Wobei \b
ist ein Zeichen der Länge 0, das den Anfang oder das Ende eines „Wortes“ darstellt.
So seltsam es klingen mag, aber die Perl-Regex-Dokumentation
ist wirklich gut, um den Regex-Teil von preg_*
zu erklären Funktionen, da die eigentliche Funktionalität in Perl implementiert ist.