我使用OCR来读取图像和PDF,然后我尝试从其中提取某些数字。在某些情况下,OCR算法将零读为字母"o“。
OCR给了我一条绳子:
Siabicbnenl| 033-7 | _o3300.81086 42000.000002 20852.301017 1 82510000030694
Prerfasa afesad如果OCR读对了,它会让ben这样做:
Siabicbnenl| 033-7 | _03300.81086 42000.000002 20852.301017 1 82510000030694
Prerfasa afesad我想抓住那个03300.81086 42000.000002 20852.301017 1 82510000030694
如果OCR读对了,我的模式(?s)\d{5}\.?\d{5}.*?\d{5}\.?\d{6}.*?\d{5}\.?\d{6}.*?\d.*?\d{14}会很好,但在这里,我接触到了一个新的情况:
OCR将零与"o"混淆
是否有一种方法可以修正我的模式,以便将"o“考虑为零,或者我需要创建一个if 'didnt find anything': str.replace("o",0)并再次运行它?
发布于 2020-05-26 23:12:44
字符类\d对于ASCII输入等效于[0-9]。如果您也想包含小写的"o“,那么现在可以在任何地方使用[0-9o] --您可以使用\d。
如果您期望输入包含ASCII 0到9以外的其他数字字符,则可以将\d和o组合在一个(捕获)组中,并有两个替代方案:(\d|o)。如果你喜欢的话,你也可以让它不被捕获:(?:\d|o)。
https://stackoverflow.com/questions/62032712
复制相似问题