正则表达式查找多种不同的日期格式

时间:2019-05-07 09:29:23

标签: python regex date

我试图找到一个正则表达式来检查是否可以在字符串中找到日期。日期可以采用四种不同的格式:

  • 2018年12月1日
  • 2018年12月1日
  • 2018年12月
  • 2018

我正在努力寻找正确的正则表达式。预先感谢!

date= re.search('\d{2}\W\w+\W\d{4}', elems[i].text)

if date is not None:
     elem[date'] = date.group(0)

1 个答案:

答案 0 :(得分:0)

您可以为此修改正则表达式,它具有可选的组以匹配您的可选数据,

(?:(?:\d{1,2}\W)?\w+\W)?\d{4}

要支持以一位或两位数表示日期,您需要将量词从{2}更改为1,2,并且像其中一个示例一样,缺少日期部分,因此您需要输入{{1} }作为选项,可以将(?:\d{1,2}\W)放在该组之后,并且由于您的样本中没有日期和月份,因此您需要在?后面加上(?:(?:\d{1,2}\W)?\w+\W)组,然后该组将与?

相匹配

另外,如果要使用它来从通用文本中匹配/提取文本,我建议您使正则表达式更具体一些。但是,如果您要使用它来匹配不包含通用字符串的文本,则应该可以。根据需要进行操作。

Regex Demo

相关问题