[Tutor] regular expressions

Magnus Lyckå magnus at thinkware.se
Sun Jul 4 10:57:43 CEST 2004


At 10:11 2004-06-24 -0700, Larry Blair wrote:
>I am trying to use regular expressions to delete a wildcard set of tables.
>My pattern is 'TEMP*' The code below is how I am implementing the delete.

That's a file name wildcard pattern, not a regular expression
pattern. They are not at all the same thing. (This has really
little to do with Python.)

I think you might want a word boundry (\b) followed by TEMP
possibly followed by any word character (\w*).

I.e. pat = re.compile(r"\bTEMP\w*")

Note that A-Z, a-z, 0-9 and _ are the word characters, so if you
want other characters included as well, you might need to change
your pattern. (This also affects \b.)

See http://docs.python.org/lib/re-syntax.html

If you don't want this to be case sensitive, you need to state that.

pat = re.compile(r"\bTEMP\w*", re.IGNORECASE)

See http://docs.python.org/lib/node106.html

The easiest way to get all matches is to simply do

listOfMatches = pat.fetchall(myString)

But remember what Jamie Zawinski said:

    Some people, when confronted with a problem, think
    "I know, I'll use regular expressions."
    Now they have two problems.

You might actually want the fnmatch module rather than
the re module. See http://docs.python.org/lib/module-fnmatch.html


--
Magnus Lycka (It's really Lyckå), magnus at thinkware.se
Thinkware AB, Sweden, www.thinkware.se
I code Python ~ The Agile Programming Language 




More information about the Tutor mailing list