我编写用正则表达式解析文本的程序.应从用户处获得正则表达式.我希望使用glob语法进行用户输入,并在内部将glob字符串转换为正则表达式.例如:
"foo.? bar*"
应转换为
"^.*foo\.\w\bar\w+.*"
不知何故,我需要从字符串中转义所有有意义的字符,然后我需要替换glob*和?具有适当的正则表达式语法的字符.这样做最方便的方法是什么?
不需要不完整或不可靠的黑客攻击.python包含了一个函数
>>> import fnmatch >>> fnmatch.translate( '*.foo' ) '.*\\.foo$' >>> fnmatch.translate( '[a-z]*.txt' ) '[a-z].*\\.txt$'