Java Matcher.replaceAll()中存在多个反向引用

Java Matcher.replaceAll()中存在多个反向引用,java,regex,matcher,backreference,Java,Regex,Matcher,Backreference,Matcher.replaceAll()和一个单曲效果很好(即Matcher.replaceAll(“$2”)) 但我无法使用两个或更多的反向引用,例如Matcher.replaceAll(“$1$2”) Matcher.replaceAll()是否支持多个反向引用?如果是这样,使用它的正确语法是什么?它工作正常。以下代码段: Pattern p = Pattern.compile("(.)(.)"); Matcher m = p.matcher("ab"); System.out.printl

Matcher.replaceAll()
和一个单曲效果很好(即
Matcher.replaceAll(“$2”)

但我无法使用两个或更多的反向引用,例如
Matcher.replaceAll(“$1$2”)


Matcher.replaceAll()是否支持多个反向引用?如果是这样,使用它的正确语法是什么?

它工作正常。以下代码段:

Pattern p = Pattern.compile("(.)(.)");
Matcher m = p.matcher("ab");
System.out.println(m.replaceAll("$2$1"));
将打印:

ba

Matcher.replaceAll($1$2)应该可以工作。你做错了什么,这里没什么奇怪的。也许你的第二个反向引用是空的?你们都是对的。我使用的语法是正确的,但我未能将
Matcher.replaceAll($1$2”)
中的返回值分配给输出字符串。现在一切都好了。谢谢