我使用String.replaceAll(String, String)
替换某些正则表达式。类似的东西:用其上部变体替换正则表达式捕获
"test Test tEsT wOrd".replaceAll("(?i)(\\w+)", "$1")
我需要它的上部变种替换此捕获,请问有什么办法做到这一点还是我需要使用java.util.regex.Matcher
?
我使用String.replaceAll(String, String)
替换某些正则表达式。类似的东西:用其上部变体替换正则表达式捕获
"test Test tEsT wOrd".replaceAll("(?i)(\\w+)", "$1")
我需要它的上部变种替换此捕获,请问有什么办法做到这一点还是我需要使用java.util.regex.Matcher
?
看看这个字符串方法:
toUpperCase
我的建议(未测试)是做这样的事情:
"test Test tEsT wOrd".replaceAll("[magic regex]", "$1".toUpperCase())
@大卫Knipe是正确的(评论) 。我能想到的唯一的其他事情是沿着First char to upper case的方向行事,但在这种情况下可能会非常快速地变得非常混乱。如果你找到另一种方式,它可能会更好,但在这里只是为了防止没有其他选择。
'“$ 1”.toUpperCase()'将计算为字符串“$ 1”,与“$ 1”'完全相同。 –
所以你只是想捕获大写字母? – progrenhard
Java没有'replaceAll'的回调变体。 [这是Java的方式](http://stackoverflow.com/a/377484/1633117)。 –
@phardhard,表达可能更复杂,通常我不需要使_all_字母大写,只是其中一些匹配正则表达式。 –