如何在Java正则表达式的同一行中捕获多个匹配项

示例

import java.util.regex.*;
class PatternMatcher {
   public static void main(String args[]) {
      int count = 0;
      // String to be scanned to find the pattern.
      String content = "aaa bb aaa";
      String string = "aaa";

      // Create a Pattern object
      Pattern p = Pattern.compile(string);

      // get a matcher object
      Matcher m = p.matcher(content);

      while(m.find()) {
         count++;
         System.out.println("Match no:"+count);
         System.out.println("Found at: "+ m.start()+ " - " + m.end());
      }
   }
}

输出结果

Match no:1
Found at: 0 - 3
Match no:2
Found at: 7 - 10

注意

  • start() –此方法用于获取使用find()方法找到的匹配项的起始索引。

  • end() –此方法用于获取使用find()方法找到的匹配项的结束索引。它返回最后一个匹配字符旁边的字符索引。