我有下面的模式:
if is_ci: re.match(token_pattern, substring, flag=re.I) else: re.match(token_pattern, substring)
有没有办法直接有条件地设置re.I(或任何其他标志)?例如,类似于:
re.I
re.match(token_pattern, substring, re.I = is_ci)
我知道在py3.11中有NOFLAG,但是我在py3.9上。
NOFLAG
nuypyhwy1#
re标志是可以进行“与”运算的位,NOFLAG表示0,因此,如果不需要,可以将标志设置为0,如果需要,可以使用re.I(实际上是2):
re
0
2
re.match(token_pattern, substring, flags=re.I if is_ci else 0)
或者,您也可以在程序顶部有条件地定义re.NOFLAG以用途:
re.NOFLAG
re.NOFLAG = 0 ... re.match(token_pattern, substring, flags=re.I if is_ci else re.NOFLAG)
1条答案
按热度按时间nuypyhwy1#
re
标志是可以进行“与”运算的位,NOFLAG
表示0
,因此,如果不需要,可以将标志设置为0,如果需要,可以使用re.I
(实际上是2
):或者,您也可以在程序顶部有条件地定义
re.NOFLAG
以用途: