regex - 如何使用正则表达式在任何文本中查找日期?
问题描述
我有一个从 OCR 程序中提取的文本。到目前为止,我设法获得了我想要的每个元素,除了日期。我的日期在某些情况下会是这样,ASDICA>31.04.2019END($>
而在其他情况下会带有空格(很容易提取)。我的问题:是否有任何没有嵌套for
循环的快速函数来解析文本并提取日期?
我的第一个业余想法是用常见的日期分隔符构建一个列表,解析文本,保存在文本中找到的元素的位置,然后搜索它们的亲属来构建一个日期。
这花费了很多时间并且证明很麻烦,因为由于 OCR 的行为,我遇到了许多转义字符。
我的理想输出是31/04/2019
,但只要我得到一个包含文本日期的列表,我就可以处理符号替换。
解决方案
首先SDICA>31.04.2019END($>
不是一个有效的日期:) 四月一个月只有 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
推荐阅读
- spring-boot - Thymeleaf - 对新建和编辑使用相同的表
- numpy - 这个神经网络示例是我在看错误还是我不理解反向传播?
- python - 如何从其中删除类的实例
- mysql - Mysql计算加入的结果数
- javascript - 单击按钮时如何重定向到我的网站?
- php - 在 Laravel 项目中收到“SQLSTATE[HY000] [2002] Connection denied 错误”
- html - 仅适用于移动设备的轮播
- java - 任何人都可以这样做吗?如何将 vs-code 多个扩展从一种语言特定的扩展切换到另一种?
- java - 如何在 DynamoDbEnhancedClient 中动态更改表名(Aws Sdk V2 for Java)
- javascript - 如何在javascript中制作唯一的数组