[Tutor] Regular expression oddity

bob gailer bgailer at gmail.com
Sun Nov 23 01:05:50 CET 2008

Emmanuel Ruellan wrote:
> Hi tutors!
> While trying to write a regular expression that would split a string
> the way I want, I noticed a behaviour I didn't expect.
>>>> re.findall('.?', 'some text')
> ['s', 'o', 'm', 'e', ' ', 't', 'e', 'x', 't', '']
> Where does the last string, the empty one, come from?
> I find this behaviour rather annoying: I'm getting one group too many.
The ? means 0 or 1 occurrence. I think re is matching the null string at 
the end.

Drop the ? and you'll get what you want.

Of course you can get the same thing using list('some text') at lower cost.

Bob Gailer
Chapel Hill NC 

More information about the Tutor mailing list