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
所以上面提到的正则表达式
([A-Za-z0]{4})(0\d{6})$
是不正确的。这是因为它与所有印度银行合作,除了“Borada 银行”,例如。 BARB0DAWARK - 它失败了
所以写入正则表达式是:
/^[A-Z]{4}[0-9]{1}[A-Z0-9]{6}$/
它匹配所有印度 IFSC 代码。