我编写了用正则表达式解析文本的程序。应从用户处获取正则表达式。我打算使用 glob 语法进行用户输入,并在内部将 glob 字符串转换为正则表达式。例如:
"foo.? bar*"
应转换为
"^.*foo\.\w\bar\w+.*"
不知何故,我需要从字符串中转义所有有意义的字符,然后我需要替换 glob * 和 ?具有适当正则表达式语法的字符。执行此操作最方便的方法是什么?
不需要不完整或不可靠的黑客攻击。 python 中包含一个用于此目的的函数
>>> import fnmatch
>>> fnmatch.translate( '*.foo' )
'.*\\.foo$'
>>> fnmatch.translate( '[a-z]*.txt' )
'[a-z].*\\.txt$'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)