Regular expression for not-group

C

Chris Lasher

Is it possible to write a regular expression such that a "match" is
found provided the string does not match a group in the regex? Let me
give a concrete example.

Suppose I want to find a match to any filename that does not end in
..py, (ignoring the obvious use of the .endswith('.py') string method).
I tried the things that were obvious to me, none of which worked.

\.^(py)
\.(^py)
\.[^p][^y]

The last one deceived me at first because it will match "spam.spam",
but not "spam.parrot". I'm a bit stumped at this point. If this can be
done with a regular expression, I'd love to know how, and even if it
can't be, that would be very helpful to know, too.

Many thanks in advance,
Chris
 
P

Paddy

Chris said:
Is it possible to write a regular expression such that a "match" is
found provided the string does not match a group in the regex? Let me
give a concrete example.

Suppose I want to find a match to any filename that does not end in
.py, (ignoring the obvious use of the .endswith('.py') string method).
I tried the things that were obvious to me, none of which worked.

\.^(py)
\.(^py)
\.[^p][^y]

The last one deceived me at first because it will match "spam.spam",
but not "spam.parrot". I'm a bit stumped at this point. If this can be
done with a regular expression, I'd love to know how, and even if it
can't be, that would be very helpful to know, too.

The re module documentation has this snippet:

(?!...)
Matches if ... doesn't match next. This is a negative lookahead
assertion. For example, Isaac (?!Asimov) will match 'Isaac ' only if
it's not followed by 'Asimov'.

- Paddy.
 
C

Chris Lasher

Man, that's a headslap-worthy overlooking of the obvious. Ha! =-)

I was using the redemo.py that comes standard with Python but that
Kodos app looks even neater! Thanks for the tip. Thanks Paddy.

Chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,233
Members
46,820
Latest member
GilbertoA5

Latest Threads

Top