# Check if a binary string has a 0 between 1s or not | Set 2 (Regular Expression Approach)

Given a string of 0 and 1, we need to check that the given string is valid or not. The given string is valid when there is no zero is present in between 1’s. For example, 1111, 0000111110, 1111000 are valid strings but 01010011, 01010, 101 are not. Examples:

```Input : 100
Output : VALID

Input : 1110001
Output : NOT VALID
There is 0 between 1s

Input : 00011
Output : VALID```

In Set 1, we have discussed general approach for validity of string.In this post, we will discuss regular expression approach for same and it is simple. As we know that in a string if there is zero between 1’s, than string is not valid.Hence below is one of the regular expression for invalid string pattern.

`10+1`

So here is the simple regex algorithm.

1. Loop over the matcher(string)
2. if above regex match is find in the matcher, then string is not valid, otherwise valid.

Implementation:

## C++

 `// C++ regex program to check for valid string``#include ``#include ``using` `namespace` `std;` `    ``// Method to check for valid string``    ``bool` `checkString(string str)``    ``{``        ``// regular expression for invalid string``        ``const` `regex Regex(``"10+1"``);` `        ``// if the regex does not match the string``        ``// then it is valid``        ``return` `!regex_match(str, Regex);``    ``}` `    ``// Driver method``    ``int` `main()``    ``{``        ``string str = ``"00011111111100000"``;` `        ``// Function call``        ``cout<<(checkString(str) ? ``"VALID"``                                        ``: ``"NOT VALID"``);``        ` `        ``return` `0;``    ``}` `// This code is contributed by Aman Kumar`

## Java

 `// Java regex program to check for valid string``  ` `import` `java.util.regex.Matcher;``import` `java.util.regex.Pattern;``  ` `class` `GFG ``{``    ``// Method to check for valid string``    ``static` `boolean` `checkString(String str)``    ``{``        ``// regular expression for invalid string``        ``String regex = ``"10+1"``;``          ` `        ``// compiling regex``        ``Pattern p = Pattern.compile(regex);``          ` `        ``// Matcher object``        ``Matcher m = p.matcher(str);``          ` `        ``// loop over matcher``        ``while``(m.find())``        ``{``            ``// if match found,``            ``// then string is invalid``            ``return` `false``;``        ``}``           ` `        ``// if match doesn't found``        ``// then string is valid``        ``return` `true``;    ``    ``}``  ` `    ``// Driver method``    ``public` `static` `void` `main (String[] args)``    ``{``        ``String str = ``"00011111111100000"``;``          ` `        ``System.out.println(checkString(str) ? ``"VALID"` `: ``"NOT VALID"``);``    ``}``}`

## Python3

 `# Python3 regex program to check for valid string``import` `re` `# Method to check for valid string``def` `checkString(``str``):``    ``# regular expression for invalid string``    ``regex ``=` `"10+1"``    ``x ``=` `re.search(``"10+1"``, ``str``)``    ``return` `x ``is` `None` `#Driver method``str` `=` `"00011111111100000"` `if` `checkString(``str``):``    ``print``(``"VALID"``)``else``:``    ``print``(``"NOT VALID"``)``    ` `#this code is contributed by phasing17`

## C#

 `// C# regex program to check for valid string` `using` `System;``using` `System.Text.RegularExpressions;` `class` `GFG {``    ``// Method to check for valid string``    ``static` `bool` `checkString(``string` `str)``    ``{``        ``// regular expression for invalid string``        ``Regex regex = ``new` `Regex(``@"10+1"``);` `        ``// if the regex does not match the string``        ``// then it is valid``        ``return` `!regex.IsMatch(str);``    ``}` `    ``// Driver method``    ``public` `static` `void` `Main(``string``[] args)``    ``{``        ``string` `str = ``"00011111111100000"``;` `        ``// Function call``        ``Console.WriteLine(checkString(str) ? ``"VALID"``                                           ``: ``"NOT VALID"``);``    ``}``}` `// This code is contributed by phasing17`

## Javascript

 `// JavaScript regex program to check for valid string`  `// Method to check for valid string``function` `checkString(str)``{``    ``// returns true if string contains only 0 and 1``    ``// otherwise, returns false``    ``return` `str.match(/^[0-1]+\$/) != ``null``;` `}` `  ` `// Driver method``let str = ``"01"``;``          ` `console.log(checkString(str) ? ``"VALID"` `: ``"NOT VALID"``);`  `// This code is contributed by phasing17`

Output
`VALID`

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

Previous
Next