[Tutor] Regexp Not Matching on Numbers?

Gooch, John John.Gooch at echostar.com
Tue Dec 14 18:15:32 CET 2004


This is weird. I have a script that checks walks through directories, checks
to see if their name matches a certain format ( regular expression ), and
then prints out what it finds. However, it refuses to ever match on numbers
unless the regexp is ".*". So far I have tried the following regular
expressions:
"\d+"
"\d*"
"\W+"
"\W*"
"[1-9]+"
and more...


Here is an example of the output:
No Match on partners80_access_log.1102723200
Checking on type=<type 'str'> Name = some_access_log.1102896000


Here is the code:
import os,sys
import re
#define the file mask to identify web log files
regexp = re.compile( r"\." )

startdir = "C:/Documents and Settings/John.Gooch/My Documents/chaser/"
#define global functions
def delFile(arg, dirname, names):
    found = 0
    for name in names:
        print "Checking on type="+str(type( name ) )+" Name = "+str(name)
        matches = re.compile(r"([\w]+)").match( name )
        if matches:
            print "Match on "+str(matches.groups()) 
            found = 1
        else:
            print "No Match on "+name
    if not found:
        print "No matches found in "+dirname
    else:
        print "Match found in "+dirname
os.path.walk( startdir, delFile, "" )




Any thoughts?


More information about the Tutor mailing list