[Tutor] regular expression question
Danny Yoo
dyoo at hkn.eecs.berkeley.edu
Wed Mar 9 03:42:17 CET 2005
On Tue, 8 Mar 2005, Mike Hall wrote:
> Yes, my existing regex is using a look behind assertion:
>
> (?<=dog)
>
> ...it's also checking the existence of "Cat":
>
> (?!Cat)
>
> ...what I'm stuck on is how to essentially use a lookbehind on "Cat",
> but only if it exists.
Hi Mike,
[Note: Please do a reply-to-all next time, so that everyone can help you.]
Regular expressions are a little evil at times; here's what I think you're
thinking of:
###
>>> import re
>>> pattern = re.compile(r"""dog(?!cat)
... | (?<=dogcat)""", re.VERBOSE)
>>> pattern.match('dogman').start()
0
>>> pattern.search('dogcatcher').start()
>>> pattern.search('dogman').start()
0
>>> pattern.search('catwoman')
>>>
###
but I can't be sure without seeing some of the examples you'd like the
regular expression to match against.
Best of wishes to you!
More information about the Tutor
mailing list