【发布时间】:2011-02-24 15:49:49
【问题描述】:
如果我有一个带有捕获组的正则表达式,例如foo(_+f)。如果我将它与一个字符串匹配,并想用baz 替换第一个捕获组 in all matches 以便
foo___f blah foo________f
转换为:
foobaz blah foobaz
使用标准库似乎没有任何简单的方法可以做到这一点。如果我使用 Matcher.replaceAll() 这将替换整个模式的所有匹配并将字符串转换为
baz blah baz
显然我可以遍历匹配项,存储每个捕获组的开始和结束索引,然后返回并替换它们,但是有没有更简单的方法?
谢谢, 唐
【问题讨论】:
-
很确定我误解了这个问题,因为我立即想到使用 Matcher.replaceFirst 而不是 replaceAll ...!?