3

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

FEBRUARY 8
FEBRUARY. 8
FEBRUARY 8.
FEBRUARY    8

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

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

除了这不起作用。我怎样才能在我的正则表达式中写入一个列表,以便它充当(JANUARY|FEBRUARY|MARCH|...etc)而不是实际写出它,或者制作一个循环?

4

1 回答 1

3

You can use ordinary string manipulation to build up the regular expression. Just keep in mind that the strings in your list will be interpreted as regexes as well, unless you use re.escape to sanitize them:

r = re.compile('({}).{0,3}\d{1,2}'.format(
         '|'.join(map(re.escape, month_list))))
于 2012-06-11T18:25:48.327 回答