regex 从python正则表达式中取消设置标志

zwghvu4y  于 2023-06-25  发布在  Python
关注(0)|答案(2)|浏览(98)

我有一个很大的正则表达式集合,我使用一些标志来应用它们,比如:

re.search(aRegex,aString,flags=re.IGNORECASE | re.UNICODE)

不幸的是,有一两个我不想忽略大小写。Python提供了一种方便的方法来从正则表达式中设置标志(例如:r'(?iu)...'设置re.IGNORECASEre.UNICODE标志)。
有没有一种方法可以从表达式中取消设置标志?可能是这样的:

r'(?i-)...'

r'(?I)...'

以强制区分大小写。(顺便说一句:这两个都不起作用。)

rdrgkggo

rdrgkggo1#

一旦在Python 2.x re模块中设置了标志(在正则表达式或函数中),就无法取消设置。(也没有办法为正则表达式的一部分设置标志)。
如果你需要这样的功能,可以考虑使用regex包。

bqf10yzr

bqf10yzr2#

从Python 3.6开始,你可以使用(?-i:YOUR_REGEX_HERE)来取消设置正则表达式的i(忽略大小写)标志(参见文档)。

相关问题