使用带有变量列表参数的re

时间:2012-06-11 18:23:17

标签: python regex

我想创建一个正则表达式来解析我正在查看的文档中定期出现的日期表达式,特别是日期有时会被写为:

FEBRUARY 8
FEBRUARY. 8
FEBRUARY 8.
FEBRUARY    8

所以我的正则表达式看起来像

re.compile(MonthList+'.?.?.?.?[0-9][0-9]?')

除非这不起作用。如何将一个列表写入我的正则表达式,使其作为(JANUARY|FEBRUARY|MARCH|...etc)而不是实际写出来或进行循环?

1 个答案:

答案 0 :(得分:3)

您可以使用普通的字符串操作来构建正则表达式。请记住,列表中的字符串也会被解释为正则表达式,除非您使用re.escape来清理它们:

r = re.compile('({}).{0,3}\d{1,2}'.format(
         '|'.join(map(re.escape, month_list))))