【问题标题】:simple java regex with backreference does not work带有反向引用的简单 Java 正则表达式不起作用
【发布时间】:2015-08-12 15:52:44
【问题描述】:

我无法用正则表达式的反向引用替换字符串: 什么都没有被替换,我总是以我的输入结束。
我的代码:

String input="A12.3 bla bla my input";
input = StringUtils.replacePattern(
            input, "^([A-Z]\\d{2}\\.\\d)",
            "$1");
System.out.println(input);

主要问题是我不能更改 java 代码,只能更改输入、正则表达式和组引用。

您对符合我需要的任何其他正则表达式模式有什么建议吗?或者出了什么问题?


StringUtils 属于 Apache Commons Lang

【问题讨论】:

  • 您只是想用“A12.3”部分替换输入吗?如果是这样,为什么不只是子字符串或修剪?

标签: java regex


【解决方案1】:

您正在自行替换相同的匹配模式。可能你的意思是:

String input="A12.3 bla bla my input";
input = StringUtils.replacePattern(
            input, "^([A-Z]\\d{2}\\.\\d).*$", "$1");
//                                      ^^^
System.out.println(input);

.*$ 将匹配输入直到结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多