Find all the patterns of “1(0+)1” in a given string | SET 2(Regular Expression Approach)

In Set 1, we have discussed general approach for counting the patterns of the form 1(0+)1 where (0+) represents any non-empty consecutive sequence of 0’s.In this post, we will discuss regular expression approach to count the same.

Examples:

Input : 1101001
Output : 2

Input : 100001abc101
Output : 2



Below is one of the regular expression for above pattern

10+1

Hence, whenever we found a match, we increase counter for counting the pattern.As last character of a match will always ‘1’, we have to again start searching from that index.

filter_none

edit
close

play_arrow

link
brightness_4
code

//Java program to count the patterns 
// of the form 1(0+)1 using Regex
  
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
class GFG 
{
    static int patternCount(String str) 
    {
        // regular expression for the pattern
        String regex = "10+1";
          
        // compiling regex
        Pattern p = Pattern.compile(regex);
                  
        // Matcher object
        Matcher m = p.matcher(str);
          
        // counter
        int counter = 0;
                  
        // whenever match found
        // increment counter
        while(m.find())
        {
            // As last character of current match
            // is always one, starting match from that index
            m.region(m.end()-1, str.length());
              
            counter++;
        }
                  
        return counter;
    }
      
    // Driver Method
    public static void main (String[] args)
    {
        String str = "1001ab010abc01001";
        System.out.println(patternCount(str));
    }
}

chevron_right


Output:

2

Related Articles :

This article is contributed by Gaurav Miglani. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up