java - 将某个条件中的所有字符串字符替换为变量值

标签 java regex

我得到了一个带有 prime-faces 编辑器组件的页面来创建文档模型,以便将模型保存在数据库中并用作将来更轻松地创建新文档的模板。

问题在于,遗留系统保存的旧模型在编辑器中没有正确格式化,更具体地说,它忽略了左侧的空格。

我发现,如果我用 " " 替换空格 "" 编辑器会显示空格,但我无法使用正确的正则表达式来处理它.

我需要做的是:获取所有大于 "" 的空格(例如 """")并将其替换为正确的“ ”号码。这样 "" 将替换为 "  "

使用以下正则表达式我可以达到超过 1 个空格的条件,但我不知道如何替换它。

 myString.replaceAll(" [\\s]+", "????");

这可能吗?或者我最好想想别的事情?

最佳答案

您可以使用此解决方案有条件地将任意 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", "&nbsp;")
);

输出

1 2&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;1 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

注意

这将保留单个空格,因为这似乎是您的意图。

关于java - 将某个条件中的所有字符串字符替换为变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393021/

相关文章:

java - 如何在 JFree BarChart 中添加 PieChart 子图?

java - 从输入字符串中找出日期

javascript - 正则表达式 '\s+-\s*|\s*-\s+' 无法正常工作

javascript - 如何匹配多个序列

java - 从逗号分隔的字符串中读取=之后的值

java - 获取没有堆栈跟踪的 "ArrayIndexOutOfBoundsException: null"

java - 将对象添加到指定索引处的 ArrayList

java - 获取联想平板电脑的序列号

regex - 破折号如何在正则表达式中工作?

javascript - 由斜杠包围的数字的正则表达式