To hodně závisí na tom, jak jsou vaše data naformátována v $r_val
, ale dobré místo pro začátek by bylo zkusit:
$r_val = preg_replace('/(?<!\.)\b0\b(?!\.)/', '-', $r_val);
Kde \b
je znak o délce 0, který představuje začátek nebo konec slova.
Jakkoli to může znít divně, ale dokumentace regexu Perl
je ve skutečnosti opravdu dobrý pro vysvětlení části regulárního výrazu preg_*
funkce, protože Perl je místo, kde je funkce skutečně implementována.