Skip to content
Related Articles

Related Articles

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

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 13 Jul, 2022
View Discussion
Improve Article
Save Article

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


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. 



//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
   // As last character of current match
   // is always one, starting match from that index
   m.region(m.end()-1, str.length());
  return counter;
 // Driver Method
 public static void main (String[] args)
  String str = "1001ab010abc01001";



Time Complexity: O(n) 
Auxiliary Space: O(1)

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 or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!