如何用正则表达式查找任何文本中的日期?

时间:2019-05-10 07:37:02

标签: regex python-3.x expression

我有一个从OCR程序中提取的文本。到目前为止,我设法获得了除日期以外我想要的所有元素。在某些情况下,ASDICA>31.04.2019END($>上我的约会是这样的,而在另一些情况下,我的约会将带有空格(易于提取)。我的问题: 是否有没有嵌套for循环的快速功能来解析文本并提取日期?

我的第一个业余想法是用常见的日期分隔符构建一个列表,解析文本,保存在文本中找到的元素的位置,然后搜索其亲戚以建立一个日期。

这花费了很多时间,并且证明很麻烦,因为由于OCR的行为,我遇到了许多转义字符。

我的理想输出是31/04/2019,但是只要我得到一个包含文本日期的列表,我就可以处理符号替换。

1 个答案:

答案 0 :(得分:2)

SDICA>31.04.2019END($>开头不是有效日期:) 4月一个月只有30天。

但是要回答您的问题,您可以使用dateutil模块,尤其是parser.parse函数来解决当前的问题

from dateutil import parser

#Parse date from the string, fuzzy parameter can find hidden datetime string around a wall of text
print(parser.parse('ASDICA>31.01.2019END($>', fuzzy=True))

输出将为2019-01-31 00:00:00