印度银行IFSC代码正则表达式

问题描述 投票:0回答:2

IFSC 代码由前 4 个字母、“0”和 6 位数字组成。正则表达式如下 [A-Z|a-z]{4}[0][\d]{6}$ 但我正在使用 OCR 来提取文本,所以我正在清理代码

        ifsc_code = ifsc_code.replace(",","")
        ifsc_code = ifsc_code.replace("X","0")
        ifsc_code = ifsc_code.replace("o","0")
        ifsc_code = ifsc_code.replace("O","0")
        ifsc_code = ifsc_code.replace("(","")
        ifsc_code = ifsc_code.replace(")","")

它的作用是将“ORBC0101346”转换为“0RBC0101346”,而我的正则表达式失败了。 我想做的是将这个 ifsc 代码分成两部分,首先是 4 个字符并进行清理,然后第二部分仅由数字组成,然后在清理后将它们连接在一起。

python python-3.x opencv computer-vision ocr
2个回答
2
投票

继续我的评论:您可以使用匹配组将不同的组件分开,例如

def parse_ifsc(ifsc_code):
    m = re.match('([A-Za-z0]{4})(0\d{6})$', ifsc_code)
    if m:
        return m.group(1).replace('0', 'O').upper() + m.group(2)
    else:
        return None

0
投票

所以上面提到的正则表达式

([A-Za-z0]{4})(0\d{6})$
是不正确的。这是因为它与所有印度银行合作,除了“Borada 银行”,例如。 BARB0DAWARK - 它失败了

所以写入正则表达式是:

/^[A-Z]{4}[0-9]{1}[A-Z0-9]{6}$/

它匹配所有印度 IFSC 代码。

© www.soinside.com 2019 - 2024. All rights reserved.