使用或不使用空格替换多个空格和破折号的正则表达式

时间:2014-09-17 11:22:18

标签: regex

我可以通过两个单独的正则表达式传递来做到这一点,但这已经很慢了,做两个没有帮助,所以我希望能够一次性完成。

我想:

  • 用一个空格替换多个空格
  • 用空格替换短划线(连字符)

但是,如果短划线在其两侧各有一个空格,那么短划线和任何一侧的任何空格只需要用一个空格替换。

举个例子:

a - b c-d e -f g- h i  - j k -  l m  -  n

必须像

一样结束
a b c d e f g h i j k l m n

我尝试过这样的事情:

\s+| - | -|- |-

但这不起作用:

a  b c d e  f g h i  j k   l m   n

3 个答案:

答案 0 :(得分:10)

使用以下正则表达式匹配多个空格或短划线;

[\s-]+

替换为单个空格。

答案 1 :(得分:1)

<强>正则表达式:

(?:\s*-\s*)+|\s{2,}

更换字符串:

<space>

DEMO

答案 2 :(得分:1)

带有全局“ g ”修饰符的

[\s-]+并替换为一个空格。 见here