如何在 Matcher 组而不是整个模式上附加替换?
我正在使用 a 来循环遍历模式的所有匹配项。对于它找到的该模式的每个实例或匹配项,我想用一些新文本替换。每个文本的此文本将有所不同,因此我使用原始字符串在通过时使用新的更改来重建原始字符串。但是,将替换整个模式,而不仅仅是组。while(matcher.find())
matcher.group(3)
matcher.appendReplacement()
appendReplacement()
我怎么能做到这一点,但只修改比赛的第三组,而不是整个模式?
下面是一些示例代码:
Pattern pattern = Pattern.compile("THE (REGEX) (EXPRESSION) (WITH MULTIPLE) GROUPS");
Matcher matcher = pattern.matcher("THE TEXT TO SEARCH AND MODIFY");
StringBuffer buffer = new StringBuffer();
while(matcher.find()){
matcher.appendReplacement(buffer, processTheGroup(matcher.group(3));
}
但我想做这样的事情(显然这不起作用)。
...
while(matcher.find()){
matcher.group(3).appendReplacement(buffer, processTheGroup(matcher.group(3));
}
类似的东西,它只替换某个组,而不是整个模式。
编辑:更改了正则表达式示例,以显示并非所有模式都已分组。