python正则表达式提取日期

时间:2018-04-18 14:45:59

标签: python regex

我正在尝试从text中提取日期。文本必须包含“过期日期:” 一些在哪里排队。我写了这个python脚本

date = re.findall('Expiration Date:*(.+)', w.text)

但在某些情况下这不起作用。与“注册商注册到期日期:”的情况一样。 此外,如何检查多种类型的匹配,例如文本是否有“到期日期”代替“到期日期”

3 个答案:

答案 0 :(得分:0)

您可以使用|来支持多个正则表达式条件,并使用re.IGNORECASE来忽略大小写

<强>演示:

import re
s = """Registrar Registration Expiration Date: 10/4/2018
Expiry date: 10/4/2018 """

print(re.findall('Expiration Date:*(.+)|Expiry Date:*(.+)', s, re.IGNORECASE))    #or re.I

答案 1 :(得分:0)

您可以使用一个表达式而不使用或

import re
s = """Registrar Registration Expiration Date: 10/4/2018
Expiry date: 10/4/2018 """

print(re.findall('Exp\w+ Date:*(.+)', s, re.IGNORECASE))

它匹配任何包含Exp的语句和任何单词字符后跟Date。所以它可以是到期或到期

答案 2 :(得分:0)

您可以使用此正则表达式:

exp_date = re.findall(r'exp\w+ date[ :]*\d+[ -/]\d+[ -/]\d+',w.text,re.IGNORECASE)

这将同时匹配大写和小写的到期和到期,并且还将匹配具有不同格式的日期,如:

  • 2010/01/01
  • 2010-01-01
  • 2010 01 01

<强>演示

string = "lorem ipusm expiry date : 2010-2-1 dolor sit expiration date : 2010/2/1 amet"
match = re.findall(r'exp\w+ date[ :]*\d+[ -/]\d+[ -/]\d+',string,re.IGNORECASE)
print(match)
# output: ['expiry date : 2010-2-1', 'expiration date : 2010/2/1']