3

我有这样的字符串:

test    text test 

我想保持单个空格原样并用替换多个空格 
所以它将变成:

tets    text test

这里有人可以建议我regex吗?

4

4 回答 4

4

您可以使用以下替换:

String replaced = str.replaceAll("((?<= ) | (?= ))", "&nbsp;");

现场演示:http: //ideone.com/kNb7rd

说明:我在这里使用正则表达式的前瞻和后视功能。((?<= ) | (?= ))意味着找到一个空格,它前面有一个空格(?<= )后面有一个空格(?= )这将确保单个空格不被替换,但所有多个空格都被替换。有关环视的更多详细信息,请参阅此链接:http ://www.regular-expressions.info/lookaround.html

于 2013-04-09T10:32:00.863 回答
0

像下面这样尝试它会帮助你..

它替换Multiple spacesSingle Space..

YourString.trim().replaceAll(" +", " ");
于 2013-04-09T10:22:03.057 回答
0
String str = "test    text test ";
System.out.println(str.replaceAll("\\s+", " "));
于 2013-04-09T10:39:57.603 回答
0
String str="test     text test";
str=str.replaceAll("\\s\\s","&nbsp;&nbsp;");
str=str.replaceAll("&nbsp;\\s","&nbsp;&nbsp;");//It will work for Odd number

如果有奇数个空格,第一个替换将留下一个空格,因此第二个替换可以解决该问题。

于 2013-04-09T10:54:28.537 回答