正则表达式用一个短划线

时间:2015-08-15 08:47:30

标签: java regex string replaceall

我已经使用了很多Regex来做到这一点,但问题是我还要考虑:

abc- -abc   //should output abc-abc
abc -- abc  //should output abc - abc
abc- - abc  //should output abc- abc
abc - -abc  //should output abc -abc

我用过:

String x=x.replaceAll("[\\-*]{2,}","-");

1 个答案:

答案 0 :(得分:7)

您可以使用以下正则表达式:

-(\\s*-)+
  • -:按字面意思匹配-
  • (...)+:分组(1次以上)
  • \\s*-:匹配-可选空格(\s)前置
x = x.replaceAll("-(\\s*-)+", "-");