Detecting RegEx across Python versions
Fredrik Lundh
fredrik at pythonware.com
Fri Feb 16 05:00:54 EST 2001
> I have done the following, but would welcome something more
> elegant
>
> [...]
> # kludge to detect a regular expression across python versions
> elif sys.version[0]=='1' and isinstance(pattern, re.RegexObject):
> if pattern.match(name):
> files.append(fname)
> elif sys.version[0]=='2' and type(pattern)==type(re.compile('')):
> if pattern.match(name):
> files.append(fname)
> elif type(pattern) is StringType:
> if fnmatch.fnmatch(name, pattern):
> files.append(fname)
if isinstance(pattern, type("")):
if fnmatch.fnmatch(name, pattern):
files.append(fname)
else:
if pattern.match(name):
files.append(fname)
or:
try:
if pattern.match(name):
files.append(fname)
except AttributeError:
if fnmatch.fnmatch(name, pattern):
files.append(fname)
or:
if isinstance(pattern, type("")):
pattern = re.compile(fnmatch.translate(pattern))
...
if pattern.match(name):
...
(insert os.path.normcase where necessary)
Cheers /F
More information about the Python-list
mailing list