PHP - str_replace多个符号

时间:2014-08-27 09:40:10

标签: php

我有以下字符串“Il-kelb ta Mariia jismu il-Bobo”

用户通常输入上面的句子。有时他们输入句子

"Il-kelb ta Mariia jismu il--Bobo" - i.e. double dashes OR
"Il---kelb ta Mariia jismu il---Bobo" - i.e. double dashes; or 
"Il-----------------------kelb ta Mariia jismu il-------Bobo" - i.e. double dashes; or 

我通常使用str_replace例如str_replace('--','-') 如果它的三个破折号str_replace('---','-') 如果它的四个破译为str_replace('----','-')

在某些情况下,它会回显 - 或 - 无论

我想知道如何使函数不允许彼此相邻的两个破折号,否则str_replace('----','-')将无限组合。

如果它们彼此相邻,我想输出一个破折号。

2 个答案:

答案 0 :(得分:4)

使用preg_replace

preg_replace("/-{2,}/", "-", $string);

答案 1 :(得分:1)

您可以使用简单的while循环:

while (strpos($string, "--") !== false)
  $string = str_replace("--", "-", $string);

或者如果您打算使用正则表达式,可以这样做:

$string = preg_replace("/\-+/", "-", $string);