【问题标题】:Replace regex pattern替换正则表达式模式
【发布时间】:2016-10-19 17:08:54
【问题描述】:

我需要在 Java 字符串中找到一个模式并替换为另一个字符串。

我有两种字符串

1- Lorem ipsum dolor sit amet,它。整数 pos laciniA。 2. Lorem ipsum dolorelit。 Curabitur pretium maL。

我需要做的是找到一个“。”前面没有数字并替换为“;”

我找到了像 str.replaceAll('\.', '\\;'); 之类的正则表达式;

这种模式的问题是当它找到字符串“2”时。它改变了“2;”

另一种解决方案是 str.replaceAll('[a-zAz]\.', '\\;');但它会替换“.”之前的最后一个字母。

有人可以帮我解决这个问题吗?

【问题讨论】:

标签: regex string


【解决方案1】:

我需要做的是找到一个“。”前面没有数字并替换为“;”

您可能会利用负面的回溯:

String result = str.replaceAll("(?<!\\d)\\.", ";");

regex demo

详情

  • (?&lt;!\d) - 如果当前位置之前有一个数字,则匹配失败
  • \. - 匹配文字 .

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    相关资源
    最近更新 更多