【问题标题】:Replacing all non numeric characters with a single character用单个字符替换所有非数字字符
【发布时间】:2015-06-06 21:26:41
【问题描述】:

我需要能够转成这样的字符串:98$#221$$99

进入这个:98-221-99

我在下面使用的代码替换了所有非数字字符,但它单独替换了它们。我只需要用一个连字符替换它。

这是我正在使用的代码:

$number = '82#$991';
$number = preg_replace("/[^0-9]/", " ", $number);
$number = str_replace(" ", "-", $number);

这个的输出是:82--991

我需要它是:82-991

有什么办法吗?

【问题讨论】:

    标签: php regex str-replace


    【解决方案1】:

    您可以使用quantifier,而不是在preg_replace() 之后调用str_replace()+ 量词告诉正则表达式引擎“一次或多次”匹配前面的标记。

    $number = '98$#221$$99';
    $number = preg_replace('/[^0-9]+/', '-', $number);
    echo $number; //=> "98-221-99"
    

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 1970-01-01
      • 2010-12-01
      • 2012-10-10
      • 2012-10-23
      • 2011-11-23
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多