Java正则表达式只删除数字之间的空格

时间:2015-06-10 11:13:10

标签: java regex

我有一些字符串:

String a = "Hello 12 2 3 4 45th World!";

我想将数字连接为:"Hello 12234 45th World"

通过尝试a.replaceAll("(?<=\\d) +(?=\\d)", ""),我得到的结果如下: "Hello 1223445th World"

有没有办法只连接数字,而不是数字 +

2 个答案:

答案 0 :(得分:3)

(?<=\\d) +(?=\\d+(?:\\s|$))

你可以尝试一下。参见演示。

https://regex101.com/r/nS2lT4/43

答案 1 :(得分:2)

您只需要在前瞻中添加word boundary,只匹配数字作为整个单词:

a.replaceAll("(?<=\\d) +(?=\\d+\\b)", ""))

Sample code on IDEONE

String a = "Hello 12 2 3 4 45th World!";
System.out.println(a.replaceAll("(?<=\\d) +(?=\\d+\\b)", ""));

输出:

Hello 12234 45th World!