用正则表达式将2个或更多的破折号替换为一个破折号。

3

我使用了很多正则表达式来解决这个问题,但是我还想考虑以下情况:

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个回答

9
您可以使用以下正则表达式:
-(\\s*-)+
  • -: 匹配连字符-
  • (...)+: 分组(1+ 次)
  • \\s*-: 匹配可选的空格(\s)前缀的连字符-
x = x.replaceAll("-(\\s*-)+", "-");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接