Key*_*upt 16 python regex list
有没有更简洁的方法在python中编写长正则表达式模式?我在某处看到了这种方法,但python中的正则表达式不允许列表.
patterns = [
re.compile(r'<!--([^->]|(-+[^->])|(-?>))*-{2,}>'),
re.compile(r'\n+|\s{2}')
]
Run Code Online (Sandbox Code Playgroud)
Aym*_*ieh 28
您可以使用详细模式编写更易读的正则表达式.在这种模式下:
以下两个陈述是等效的:
a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")
Run Code Online (Sandbox Code Playgroud)
(取自详细模式的文档)
Ale*_*lli 13
虽然@Ayman的建议re.VERBOSE是一个更好的主意,如果你想要的只是你所展示的,那就做:
patterns = re.compile(
r'<!--([^->]|(-+[^->])|(-?>))*-{2,}>'
r'\n+|\s{2}'
)
Run Code Online (Sandbox Code Playgroud)
和Python的相邻字符串文字的自动连接(很像C,btw)将完成其余的工作;-).