如何用另一个char替换同一个char的两个或多个出现?

时间:2010-11-24 19:16:01

标签: php string

我正在尝试用一段PHP代码替换字符串中char的多个相邻出现,只有一个出现该char。

示例:

my-string--is---dashed

应该成为:

my-string-is-dashed

4 个答案:

答案 0 :(得分:6)

最直接的解决方案是使用正则表达式替换。

$output = preg_replace('/-+/', '-', $input);

实际上,为了限制空置替换,您可以选择使用以下内容:

$output = preg_replace('/-{2,}/', '-', $input);

答案 1 :(得分:3)

使用正则表达式:

var_dump(preg_replace('/-{2,}/', '-', 'my-string--is---dashed')); // string(19) "my-string-is-dashed"

如果您的意思是任何重复字符,那就更复杂了:

var_dump(preg_replace('/(.)(\\1)+/', '$1', 'tttooosssdihfjkkk')); string(9) "tosdihfjk"

\\1基本匹配的字符(由(.)匹配)。

答案 2 :(得分:1)

试试这个:

$new_string = preg_replace('/-{2,}/', '-', $string);

答案 3 :(得分:0)

str_replace("--", "-", $mystring);