PHP-str_replace多个符号


PHP - str_replace multiple symbols

我有以下字符串"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('----','-')将用于无限组合。

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

使用preg_replace

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

您可以通过以下方式使用简单的while循环:

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

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

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