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

时间:2015-05-29 17:11:41

标签: 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

1 个答案:

答案 0 :(得分:3)

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

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

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