我正在尝试用一段PHP代码替换字符串中char的多个相邻出现,只有一个出现该char。
示例:
my-string--is---dashed
应该成为:
my-string-is-dashed
答案 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);