【问题标题】:Regular Expression for IFSC Code of Indian Bank印度银行 IFSC 代码的正则表达式
【发布时间】:2020-03-03 14:49:13
【问题描述】:

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 个字符并进行清理,然后第二部分仅由数字组成,然后在清理后将它们连接在一起。

【问题讨论】:

  • 为什么不只是 [A-Za-z0]{4}0\d{6}$ ? - 所以在第一部分允许除字母之外的零吗?
  • 然后这样做:如果 ifsc_code[0] == "0": ifsc_code = "O" + ifsc_code[1:]

标签: python python-3.x opencv computer-vision ocr


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    相关资源
    最近更新 更多