在Java中查找正则表达式的所有匹配项

时间:2014-06-18 17:00:57

标签: java regex

我在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) );
     }
  }

1 个答案:

答案 0 :(得分:3)

为了找到给定输入中给定Pattern的所有匹配项,只需迭代boolean find()的{​​{1}}方法,如下:

Matcher
问题编辑后

编辑:没有一种方法可以匹配所有问题。有一种替换给定while (m.find()) { ... Pattern的所有匹配项的方法(例如String),但我怀疑这是你想要的。