我正在寻找一种用不间断空格替换多个空格的 Java 正则表达式方法。两个或多个空格应替换为相同数量的不间断空格,但不应替换单个空格。这需要适用于任意数量的空格。并且第一个字符可以是一个或多个空格。
所以如果我的字符串像这样开始:
TESTING THIS OUT WITH DIFFERENT CASES
我需要新的字符串看起来像这样:
TESTING THIS OUT WITH DIFFERENT CASES
最佳答案
让我们使用一些正则表达式(黑色?)魔法。
String testStr = "TESTING THIS OUT WITH DIFFERENT CASES";
Pattern p = Pattern.compile(" (?= )|(?<= ) ");
Matcher m = p.matcher(testStr);
String res = m.replaceAll(" ");
该模式寻找一个空格后跟另一个空格,或者一个空格后跟另一个空格。这样它就可以捕获序列中的所有空白。在我的机器上,使用 java 1.6,我得到了预期的结果:
TESTING THIS OUT WITH DIFFERENT CASES
关于仅用不间断空格替换多个空格的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372825/