用PHP替换多个实例

时间:2010-04-12 18:10:56

标签: php string replace

说我有

sometext-somemore - 试验--- TEST2

我怎么能让它取代所有超过1的实例 - 然后用1替换它们所以它看起来像这样

sometext-somemore测试-test2的

5 个答案:

答案 0 :(得分:5)

使用preg_replace

preg_replace('/-+/', '-', $mystr);

答案 1 :(得分:2)

使用正则表达式:s/-+/-/ +表示'前面一个或多个字符'。

答案 2 :(得分:1)

您可以使用正则表达式和preg_replace函数执行此操作:

$str = 'sometext-somemore--test---test2';
echo preg_replace('/-+/', '-', $str);

会给你:

sometext-somemore-test-test2


我在这里使用的模式: -+

  • 匹配 -
  • 一次或多次: +
    • 请参阅PCRE手册中的Repetition,了解相关信息。

如果您对正则表达式感兴趣,请不要犹豫,阅读本手册的PCRE Patterns部分; - )

答案 3 :(得分:0)

for($ i = 0; $ i< strlen($ text) - 1; $ i ++){         if($ text [$ i] == $ text [$ i + 1]){             $ text = str_replace($ i。$ i,$ i,$ text);         }     }

<击>

对于你认为可能重复的每个字符,单独使用str_replace()的效率要高得多,但它会起作用..

如果你想要的只是用一个替换两个破折号:

$text = str_replace("--", "-", $text);

答案 4 :(得分:0)

使用此:

echo preg_replace("/-+/","-","sometext-somemore--test---test2");
//prints sometext-somemore-test-test2