Regular Expression: Matching substring

Kevin CH hierarchicalpolymorphist at gmail.com
Thu Apr 13 00:30:18 EDT 2006


Leon wrote:
> Hi Kevin,
>
> You may notice that, for matching the regex (0|(1(01*0)*1))*,  the left
> most
> three  characters of a string must not be ``101" while not followed by
> an `0'.
> After reading the first `1', automata expects  `1' or ``00" or ``010"
> or ``11",
> right?:)
Why it must expect "010"?  Why not say "0110", since 1* can represent 0
or more repetitions.


>
>
> Kevin CH 寫道:
>
> > Hi,
> >
> > I'm currently running into a confusion on regex and hopefully you guys
> > can clear it up for me.
> >
> > Suppose I have a regular expression (0|(1(01*0)*1))* and two test
> > strings: 110_1011101_ and _101101_1. (The underscores are not part of
> > the string.  They are added to show that both string has a substring
> > that matches the pattern.)  Applying a match() function on the first
> > string returns true while false for the second.  The difference is the
> > first one has unmatched chunk in the beginning while the second at the
> > end.  How's the regex rule work here?
> > 
> > Thanks.




More information about the Python-list mailing list