我有一個代碼使用正則表達式從文本(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' –
所有的月份和日期都是正確的格式,只是年份已經搞亂了嗎? –