我需要能够像这样转换字符串:98 $#221 $$ 99
进入:98-221-99
我在下面使用的代码替换了所有非数字字符,但它会单独替换它们。我需要它只用一个连字符替换它。
以下是我正在使用的代码:
$number = '82#$991';
$number = preg_replace("/[^0-9]/", " ", $number);
$number = str_replace(" ", "-", $number);
这个输出是:82--991
我需要它:82-991
有没有办法做到这一点?
答案 0 :(得分:4)
您可以使用quantifier,而不是在str_replace()
之后调用preg_replace()
。 +
量词告诉正则表达式引擎匹配前面的令牌"一个或多个"次。
$number = '98$#221$$99';
$number = preg_replace('/[^0-9]+/', '-', $number);
echo $number; //=> "98-221-99"