正则表达式:标记字符串中的每个匹配项并返回使用标记Java编辑的字符串

问题描述 投票:1回答:1

目标是用括号标记字符串中的每个匹配,并返回标记每个匹配的相同字符串

即:

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
java regex
1个回答
1
投票

你可以用($0)替换你的比赛,其中$0代表整场比赛:

String Pattern = "\\d+";
String Text = "e3e3e";
System.out.println(Text.replaceAll(Pattern, "($0)"));

参见Java demoregex demo

Java Pattern docs

第0组始终代表整个表达式。

© www.soinside.com 2019 - 2024. All rights reserved.