我有一个代码使用正则表达式从文本(format = mm-dd-yyyy)中提取日期。如何获得最接近的匹配正则表达式
注意:该文本是使用OCR在票据图像上获得的。所以,预期的日期格式是mm-dd-yyyy,但它可以是使用OCR获取的任何随机文本。
import re
date_reg_exp = re.compile('\d{2}[-/.]\d{2}[-/.]\d{4}') #works for mm-dd-yyyy
matches_list=date_reg_exp.findall(test_str)
for match in matches_list2:
print match
如果我有一个字符串'This is a text extracted from OCR 09-11-2015'
上面的代码工作和结果的日期作为输出'09-11-2015'
。但是,如果我有一个字符串'This is o text extractud fram OCR 09-11-201 5'
或'This is o text xtractud fram OCR 09-11-201'
或'This is o text xtractud fram OCR O9-11-201'
它会失败。我如何为这样的场景编写代码,在这个场景中它也挑选最接近的匹配项。
它取决于“最近”的定义。你的例子可以通过在匹配之前删除空格来处理。 – eph
好的。让我更具体一些。如果我有一个字符串''字符串是09-11-201',这是正则表达式最接近的匹配。这应该被打印为输出。 输出 - '09-11-201' –
所有的月份和日期都是正确的格式,只是年份已经搞乱了吗? –