Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提取日期的python正则表达式_Python_Regex - Fatal编程技术网

提取日期的python正则表达式

提取日期的python正则表达式,python,regex,Python,Regex,我正在尝试从文本中提取日期。文本必须包含“过期日期:” 有些在排队的地方。我已经编写了这个python脚本 date = re.findall('Expiration Date:*(.+)', w.text) 但在某些情况下,这是行不通的。与“注册官注册到期日”的情况相同。 此外,如何检查多种类型的匹配,如文本是否用“到期日”代替“到期日”您可以使用|组合多个正则表达式条件,也可以使用re.IGNORECASE忽略大小写 演示: import re s = """Registrar Regis

我正在尝试从文本中提取日期。文本必须包含“过期日期:” 有些在排队的地方。我已经编写了这个python脚本

date = re.findall('Expiration Date:*(.+)', w.text)
但在某些情况下,这是行不通的。与“注册官注册到期日”的情况相同。
此外,如何检查多种类型的匹配,如文本是否用“到期日”代替“到期日”

您可以使用
|
组合多个正则表达式条件,也可以使用
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

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

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和任何后跟日期的单词字符的语句。因此它可以是expire或expire

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

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']

提供完整的预期输入/输出(例如,输入看起来像:注册商注册到期日期:9/10/86,到期日期:02-02-2002,等等,输出看起来像:9/10/86)并列出尽可能多的预期边缘大小写可能会有所帮助(例如,大小写不敏感、额外字符/空格等)。是否将模式更改为仅查找单词日期?您应该使用在线正则表达式测试仪(使用Python风格的正则表达式的测试仪)若输入为“注册商注册截止日期:2020-09-28T12:35:25Z”,则输出应为“2020-09-28T12:35:25Z”。若行仅包含“截止日期:2020-09-28T12:35:25Z”,则运行正常。即,若以“截止日期:”开头,则若我只需要日期部分,不是“到期日”?在空格中拆分每个项目并获取最后一个项目。我已经使用这个列表来获得日期列表<代码>[匹配项中的项拆分(“”[-1])