我有一个带有prime-faces编辑器组件的页面来创建文档模型,这样模型就可以保存在DB中并用作模板,以便将来更容易地创建新文档。
问题在于遗留系统保存的旧模型未在编辑器中正确格式化,更具体地说,它忽略了左侧空格。
我发现如果我用" "
替换空格" "
,编辑器会显示空格,但我无法使用正确的正则表达式。
我需要做的是:获取所有大于" "
的空格(例如" "
或" "
)并将其替换为右" "
个数字。因此" "
将替换为"  "
。
使用以下正则表达式我可以达到超过1个空格的条件,但我不知道如何替换它。
myString.replaceAll(" [\\s]+", "????");
这可能吗?或者我最好还想别的什么?
答案 0 :(得分:3)
您可以使用此解决方案有条件地用等效数量的
个实例替换任何2个连续的空格:
String spaces = "1 2 3 4 1 5 end";
System.out.println(
// | space followed by space
// | | or
// | | | space preceded by space
spaces.replaceAll("\\s(?=\\s)|(?<=\\s)\\s", " ")
);
<强>输出强>
1 2 3 4 1 5 end
注意强>
这将留下单个空格,因为它似乎是你的意图。
答案 1 :(得分:1)
如果你的意图只是用nbsp替换每个空格,那么从正则表达式中删除第一个空格。
<强>代码强>
String myString = "this is a test";
System.out.println(myString.replaceAll("[\\s]", " "));
<强>输出强>
this is a test