正则表达式用一个替换两个字符的出现。

时间:2014-03-13 05:31:32

标签: php regex

我正在尝试实现一个正则表达式,它将用一个替换两个或多个字符的出现。但我不知道这样做。

这是我的字符串

   example--of---string.

我需要一个正则表达式,它会给我这样的输出

  example-of-string.

这在正则表达式中是否可行,在php中是preg_replace。

或者我需要通过数组访问元素并检查下一个字符,如果是 -

则跳过

请告诉我

3 个答案:

答案 0 :(得分:4)

正则表达式

(.)\1+

这将重复发生任何重复两次以上相同字符的事件。不只是破折号。

替换字符串

\1

在线演示

http://regex101.com/r/rF3bK5

答案 1 :(得分:3)

<?php
$string = 'example--of---string.';
$new_string = preg_replace('/-+/', '-', $string);
echo $new_string;
?>

答案 2 :(得分:2)

使用此正则表达式:

/-{1,}/g

替换为:

-

演示: http://regex101.com/r/uV1qZ7