【发布时间】:2018-07-13 19:00:45
【问题描述】:
让我们考虑以下示例:
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() 的方法,是否可以使用\U$1 之类的东西代替$1 和replaceAll()
【问题讨论】:
-
请提供开始和结束的结果。
-
@Black.Jack 我已经更新了问题
-
无法与 toUppercase() 区别
-
致@Maroun,我知道这不会被标记给你,但如果你正确阅读了我的问题,你就不会将此标记为骗子。
-
这个问题很简单,我正在寻找简洁的版本。