我有一个很大的正则表达式集合,我使用一些标志来应用它们,比如:
re.search(aRegex,aString,flags=re.IGNORECASE | re.UNICODE)
不幸的是,有一两个我不想忽略大小写。Python提供了一种方便的方法来从正则表达式中设置标志(例如:r'(?iu)...'
设置re.IGNORECASE
和re.UNICODE
标志)。
有没有一种方法可以从表达式中取消设置标志?可能是这样的:
r'(?i-)...'
或
r'(?I)...'
以强制区分大小写。(顺便说一句:这两个都不起作用。)
2条答案
按热度按时间rdrgkggo1#
一旦在Python 2.x
re
模块中设置了标志(在正则表达式或函数中),就无法取消设置。(也没有办法为正则表达式的一部分设置标志)。如果你需要这样的功能,可以考虑使用
regex
包。bqf10yzr2#
从Python 3.6开始,你可以使用
(?-i:YOUR_REGEX_HERE)
来取消设置正则表达式的i
(忽略大小写)标志(参见文档)。