编译复杂的正则表达式



我正在尝试理解以下与复杂正则表达式相关的代码。

我不明白full_regex线是如何运作的?"%s"以及前面的其他%有什么用(正则表达式1,正则表达式2...(

有人可以帮忙吗?

regex1 = '(d{1,2}[/-]d{1,2}[/-]d{2,4})'
regex2 = '((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[S]*[+s]d{1,2}[,]{0,1}[+s]d{4})'
regex3 = '(d{1,2}[+s](?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[S]*[+s]d{4})'
regex4 = '((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[S]*[+s]d{4})'
regex5 = '(d{1,2}[/-][1|2]d{3})'
regex6 = '([1|2]d{3})'
full_regex = '(%s|%s|%s|%s|%s|%s)' %(regex1, regex2, regex3, regex4, regex5, regex6)

表达式

full_regex = '(%s|%s|%s|%s|%s|%s)' % (regex1, regex2, regex3, regex4, regex5, regex6)

只是将所有其他正则表达式合并为一个在所有这些正则表达式之间交替的大正则表达式;这不是正则表达式语法,它只是 Python 字符串插值。

最新更新