Dette afhænger meget af, hvordan dine data er formateret inde i $r_val , men et godt sted at starte ville være at prøve:
$r_val = preg_replace('/(?<!\.)\b0\b(?!\.)/', '-', $r_val);
Hvor \b er et 0-længde tegn, der repræsenterer starten eller slutningen af et 'ord'.
Hvor mærkeligt det end lyder, men Perl regex-dokumentationen
er faktisk rigtig god til at forklare regex-delen af preg_* funktioner, da Perl er der, hvor funktionaliteten faktisk implementeres.