我在Java中使用正则表达式功能。我可以正确地得到第一场比赛。我如何获得所有比赛?我可以使用m.find(int start)
,但有没有办法让所有人都使用一个电话?
String pattern="Span\\(trace_id:(\\d+), name:(\\w+), id:(\\d+), parent_id:(\\d+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find()) {
System.out.println("Found value: " + m.group(0) );
for (int count = 1; count <= m.groupCount(); count ++) {
System.out.println("Found value: " + m.group(count) );
}
}
答案 0 :(得分:3)
为了找到给定输入中给定Pattern
的所有匹配项,只需迭代boolean find()
的{{1}}方法,如下:
Matcher
问题编辑后 编辑:没有一种方法可以匹配所有问题。有一种替换给定while (m.find()) {
...
中Pattern
的所有匹配项的方法(例如String
),但我怀疑这是你想要的。