This is for formal-language-style regular expression and not about Unix-style regular expression.
I was trying to find the regular expression that doesn't accept empty string, doesn't accept strings composed of only 0's, and doesn't accept strings composed of only 1's. The regular expression should only accept strings composed of 0's and 1's but without consecutive 1's.
Here's what I've seen so far: $(0+10)^*(ε+1)$
The problem is that it can accept empty string or just 1-character string 1
. I would like to skip empty string and 1
since they are not strings of 0's and 1's.
I just couldn't find a good pattern. It seems that I have to create 2 regular expressions so that the first will be $(01+10)(0+1)^*$. If I am right, that will not accept empty string, will not accept just 0's, and will not accept just 1's. Then I would pass the result to the 2nd pattern $(0+10)^*(ε+1)$ to further validate that it has no consecutive 1's.
Could anyone explain what is the best solution to have the correct regular expression for strings of 0's and 1's?