是的,通过设置re.X
/re.VERBOSE
标志:
该标志允许您编写看起来更好的正则表达式。模式中的空格将被忽略,除非是在字符类中,或者以未转义的反斜杠开头,或者在诸如*?
,(?:
或的标记中(?P<...>
。如果一行中包含的#
字符不在字符类中,并且前面没有未转义的反斜杠,则从最左边开始#
到该行末尾的所有字符都将被忽略。
这意味着与十进制数字匹配的以下两个正则表达式对象在功能上相等:
a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")
这几乎与/x
Perl标志完全一样。
您可以在(?x:...)
(启用)和(?-x:...)
(禁用)分组中的模式子部分中控制同一标志。