正则表达式从IBAN捕获BBAN?

时间:2014-04-30 16:37:29

标签: c# regex banking

我找到了一个正则表达式,匹配所有国家here的所有IBAN号码:

[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}

我尝试调整它以便有两个捕获组,一个用于国家/地区代码(前两个字母),另一个用于帐号(最后10位?)

"^(?<CountryCode>[a-zA-Z]{2})[0-9]{2}[a-zA-Z0-9]{4}(?<AccountNumber>[0-9]{7}([a-zA-Z0-9]?){0,16})"

上面的正则表达式无法捕获帐号。我想基本上捕获最后10位数,但由于BBAN在所有国家都不同(这就是为什么IBAN被发明),这并不总是相似的。

我希望有人可以提供一些想法。

/编辑我将其更改为:

"^(?<CountryCode>[a-zA-Z]{2})[0-9]{2}[a-zA-Z0-9]{4}([0]*)(?<AccountNumber>([a-zA-Z0-9]?){0,16})";

这在我对荷兰号码的单元测试中有效,但我不确定其他国家。我仍然希望听到你的发言。

1 个答案:

答案 0 :(得分:0)

据我所知,BBAN是除国家代码和校验位之外的所有内容。在NL中它恰好是4个字母,其余的是银行帐户,但它可以是任何格式。基本上,&#34;官方&#34; BBAN是忽视前4个字母数字的一切。

https://en.wikipedia.org/wiki/International_Bank_Account_Number#Structure