How to capture multiple matches in the same line in Java regex


Example

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());
      }
   }
}

Output

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

Note

  • start() – This method used for getting the start index of a match that is being found using find() method.

  • end() –This method used for getting the end index of a match that is being found using find() method. It returns index of character next to last matching character.

Updated on: 20-Jun-2020

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements