如何将这两个正则表达式语句组合成一个String.repalceAll()

时间:2016-01-28 10:55:19

标签: java regex

我有这个字符串,

"36635,36635,36635,36635 36635 36635 36635 36635-36635-36635"

到最后我想

36635 36635 36635 36635 36635 36635 36635 36635 36635 36635

我已设法通过以下代码实现此目的。

String original = "36635,36635,36635,36635   36635   36635 36635  36635-36635-36635";
String justSpaces =  original.replaceAll("[^0-9]", " ");
String oneSpaceMax = justSpaces.replaceAll(" {2,}", " ");
System.out.printf("Original: %s \n JustSpaces: %s \n oneSpaceMax: %s", original, justSpaces, oneSpaceMax);

输出

Original: 36635,36635,36635,36635   36635   36635 36635  36635-36635-36635 
JustSpaces: 36635 36635 36635 36635   36635   36635 36635  36635 36635 36635 
oneSpaceMax: 36635 36635 36635 36635 36635 36635 36635 36635 36635 36635

如何组合这两个正则表达式语句?我尝试使用Or |运算符,但没有运气。

1 个答案:

答案 0 :(得分:4)

使用:

original = original.replaceAll("\\D+", " ");

\\D+将匹配1个或更多非数字(包括空格),替换只是一个空格。

RegEx Demo