我需要仅移除数字之间的空格,使得像这样的字符串:
"Hello 111 222 333 World!"
变成
"Hello 111222333 World!"
我尝试过这个:
message = message.replaceAll("[\\d+](\\s+)[\\d+]", "");
似乎完成不了。
String repl = "Hello 111 222 333 World!".replaceAll("(?<=\\d) +(?=\\d)", "");
//=> Hello 111222333 World!
这个正则表达式 "(?<=\\d) +(?=\\d)"
确保匹配前后有数字的空格。
http://regex101.com/r/zL6yH3
,使用(\\d) (\\d)
无法将1 2 3
转换为123
。 - anubhava(\\d) +(?=\\d)
并用$1
替换是否可行?如果要避免使用后顾(lookbehind)呢? - Jonny 5(?<=\\d) +(?=\\d )
- 第二组应该带有尾随空格。 - stuartdthestring.replace(/(?<=\d) +(?=\d)/g, '');
- Avatarmessage = "Hello 111 222 333 World!".replaceAll("(\\d)\\s(\\d)", "$1$2");
提供:
"Hello 111222333 World!"