我想创建一个regex,它可以解析定期出现在我正在查看的文档中的日期表达式,特别是,日期有时会写成:
FEBRUARY 8
FEBRUARY. 8
FEBRUARY 8.
FEBRUARY 8
所以我的正则表达式应该看起来像
re.compile(MonthList+'.?.?.?.?[0-9][0-9]?')
只是这不起作用。如何将列表写入正则表达式,使其充当
(JANUARY|FEBRUARY|MARCH|...etc)
而不是实际写出该列表或进行循环? 最佳答案
可以使用普通的字符串操作来构建正则表达式。请记住,列表中的字符串也将被解释为regex,除非使用re.escape
清理它们:
r = re.compile('({}).{0,3}\d{1,2}'.format(
'|'.join(map(re.escape, month_list))))