Java String.replaceAll使用命名捕获组的反向引用

3

在Java的String.replaceAll方法中,如何引用命名捕获组?

举个简单的例子,假设我有一个正则表达式

\{(?<id>\d\d\d\d):(?<render>.*?)\}

这是一篇关于IT技术的翻译。需要处理的内容是字符串中的标签。一个字符串中可能有多个标签,我想用“render”捕获组的内容替换所有标签。

如果我的字符串如下:

String test = "{0000:Billy} bites {0001:Jake}";

如果我想得到像"Billy bites Jake"这样的结果,我知道可以通过以下方式实现:

test.replaceAll(tagRegex, "$2")

但我希望能够使用类似于以下的东西:
test.replaceAll(tagRegex, "$render")`

有没有一种方法可以做到这一点?使用"$render",我得到了"IllegalArgumentException: Illegal group reference"的错误。
1个回答

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接