Detta beror mycket på hur din data är formaterad i $r_val
, men ett bra ställe att börja skulle vara att prova:
$r_val = preg_replace('/(?<!\.)\b0\b(?!\.)/', '-', $r_val);
Där \b
är ett 0-långt tecken som representerar början eller slutet av ett "ord".
Hur konstigt det än låter, men dokumentationen för Perl regex
är faktiskt riktigt bra för att förklara regex-delen av preg_*
funktioner, eftersom Perl är där funktionaliteten faktiskt implementeras.