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

Regular Expression for IFSC Code of Indian Bank

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 个字符,然后进行清理,然后第二部分只包含数字,然后在清理后最后将它们连接在一起。

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

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