[EMAIL PROTECTED] wrote:
Hello NG,

      I'm quite new to Python and I don't know if this is a FAQ (I can't
find it) or an obvious question. I'm using the RE module in python, and I
would like to be able to contruct something like the Window$ "Find Files Or
Folders" engine. As the Window$ users know, you can filter the file names
using the character "*", as:

myfilen*                 (Will find a file named myfilenames)
*yf*nam*                (Will find a file named myfilenames)

I have tried something like:

import re
mystring = "*yf*nam*"
mystring.replace("*","\w+")
php = re.compile(mystring + "\w+")

But it does not work...

replace doesn't change the string in place (it can't, since strings are immutable in Python); rather it returns a new string. You could, for example, do something like


mystring = mystring.replace("*","\w+")

Note 1: I'm not sure of the meaning of '*' in Windows file wildcards, but I think it would be more correct to translate it into '\w*' (i.e. zero or more instead of one or more) or even '.*' (any character, not only alphanumeric; will also match spaces etc. that might appear in filenames).

Note 2: Instead of translating to regular expressions, it would probably be easier to use the fnmatch and/or glob module. They use Unix shell-style wildcards, which I believe are very similar to Windows style wildcards, if not identical.

--
"Codito ergo sum"
Roel Schroeven
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to