让我们考虑以下例子:
String s = str.replaceAll("regexp", "$1");
有些语言允许我们在匹配组中使用\U$1
代替$1
,以将匹配的组转换为大写字母。如何在Java中实现相同的效果?
我知道我们可以使用Pattern
类获取组并将其转换为大写字母,但这不是我想要的。我只想用某些东西来替换$1
,以完成工作。
我也尝试过:
String s = str.replaceAll("regexp", "$1".toUpperCase());
但看起来"$1".toUpperCase()
是"$1"
而不是匹配项。我使用以下方法进行了确认:
String s = str.replaceAll("regexp", method("$1"));
// method declared as method()
private static String method(String s) {
System.out.println(s); // prints "$1"
return s;
}
这在Java中是否允许?
编辑:
String s = "abc";
System.out.println(s.replaceAll("(a)", "$1")); // should print "Abc"
为了避免重复:
我不是在寻找使用m.group()
的方法,而是想知道是否可以在replaceAll()
中使用类似于\U$1
代替$1
的内容。