目标是使用括号标记字符串中的每个匹配,并为每个匹配标记
返回相同的字符串即:
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 :(得分:1)
您可以将($0)
替换为$0
,其中String Pattern = "\\d+";
String Text = "e3e3e";
System.out.println(Text.replaceAll(Pattern, "($0)"));
代表整场比赛:
Id Timestamp name_id testobject_id
----------------------------------------------------
2 | 2017-12-15 18:36:46 | 1 | 1
3 | 2017-12-15 18:36:46 | 2 | 1
1 | 2016-01-01 00:00:00 | 1 | 1
4 | 2017-12-15 18:36:46 | 1 | 2
5 | 2017-12-15 18:36:46 | 2 | 2
请参阅Java demo和regex demo。
组0始终代表整个表达式。