java - 带有反向引用的简单 Java 正则表达式不起作用

标签 java regex

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

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

最佳答案

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

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

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

关于java - 带有反向引用的简单 Java 正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535364/

相关文章:

c# - 在文档中查找 HTML 字符串

regex - 如何查找特定范围内的所有IP地址?

java - Objectify/Appengine 枚举添加的向后兼容性

Java搜索整棵树寻找最小值

多次调用 findViewById 后 Java/JNI 突然崩溃

java - 是否可以在单个 bean 声明中声明多个微米绑定(bind)器

java - 为什么我的 Spring Boot POST 输出 "Whitelabel Error Page"?

python - 正则表达式不匹配

javascript - 如何编写一个 javascript 正则表达式来用 html 超链接替换这种格式 [*](*) 的超链接?

正则表达式匹配仅包含某些字符的整个单词