目标是用括号标记字符串中的每个匹配,并返回标记每个匹配的相同字符串
即:
Pattern = "\\d+"
Text = "e3e3e"
wanted result = "e(3)e(3)e"
我试过了 :
while (matcher.find())
text = text.replace(match.group(), "(" + match.group() + ")");
但它每次找到匹配时都会反复替换所有匹配项
e3e3e => e((3))e((3))e instead of e(3)e(3)e
h4h444h = > h(4)h(4)(4)(4)h instead of h(4)h(444)h
你可以用($0)
替换你的比赛,其中$0
代表整场比赛:
String Pattern = "\\d+";
String Text = "e3e3e";
System.out.println(Text.replaceAll(Pattern, "($0)"));
第0组始终代表整个表达式。