仅用不间断空格替换多个空格的 Java 正则表达式

标签 java html regex

我正在寻找一种用不间断空格替换多个空格的 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("&nbsp;");

该模式寻找一个空格后跟另一个空格,或者一个空格后跟另一个空格。这样它就可以捕获序列中的所有空白。在我的机器上,使用 java 1.6,我得到了预期的结果:

TESTING THIS&nbsp;&nbsp;OUT&nbsp;&nbsp;&nbsp;WITH&nbsp;&nbsp;&nbsp;&nbsp;DIFFERENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CASES

关于仅用不间断空格替换多个空格的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372825/

相关文章:

java - 正则表达式\\s*,\\s*有什么作用?

c++ - 正则表达式匹配整个字符串

java - 如何使用循环移动数组中的每个元素?

java - 如何使用特定算法设置数组的元素?

html - 没有宽度的 float 转到长内容的下一行

javascript - 在单击之前显示 mdTooltip,再次单击时隐藏

regex - 将字符串拆分为参数和值

java - OnBindViewHolder 下的 onClickListener 函数给出了奇怪的结果

java - setTitle 方法中的异常

javascript - 悬停时在html文本中一个一个地改变字母的颜色