我有以下字符串“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('----','-')
将无限组合。
如果它们彼此相邻,我想输出一个破折号。
答案 0 :(得分:4)
使用preg_replace
preg_replace("/-{2,}/", "-", $string);
答案 1 :(得分:1)
您可以使用简单的while
循环:
while (strpos($string, "--") !== false)
$string = str_replace("--", "-", $string);
或者如果您打算使用正则表达式,可以这样做:
$string = preg_replace("/\-+/", "-", $string);