Regular expression negative look-ahead

Jason Friedman jsf80238 at gmail.com
Mon Jul 1 22:27:51 EDT 2013


Found this:
http://stackoverflow.com/questions/13871833/negative-lookahead-assertion-not-working-in-python
.

This pattern seems to work:
pattern = re.compile(r"^(?!.*(CTL|DEL|RUN))")

But I am not sure why.


On Mon, Jul 1, 2013 at 5:07 PM, Jason Friedman <jsf80238 at gmail.com> wrote:

> I have table names in this form:
> MY_TABLE
> MY_TABLE_CTL
> MY_TABLE_DEL
> MY_TABLE_RUN
> YOUR_TABLE
> YOUR_TABLE_CTL
> YOUR_TABLE_DEL
> YOUR_TABLE_RUN
>
> I am trying to create a regular expression that will return true for only
> these tables:
> MY_TABLE
> YOUR_TABLE
>
> I tried these:
> pattern = re.compile(r"_(?!(CTL|DEL|RUN))")
> pattern = re.compile(r"\w+(?!(CTL|DEL|RUN))")
> pattern = re.compile(r"(?!(CTL|DEL|RUN)$)")
>
> But, both match.
> I do not need to capture anything.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130701/c91108ad/attachment.html>


More information about the Python-list mailing list