1

我正在尝试创建一个允许/注册 IBAN 号码的正则表达式,即使它包含破折号或空格。

前任。希腊 IBAN #

GR1601101250000000012300695

希腊 IBAN 正则表达式

GR\d{2}\d{4}\d{3}\w\w{4}\w{4}\w{4}\w{3}

我想将这三(3)个正则表达式组合成一个(1)个正则表达式:

GR\d{2} \d{4} \d{3}\w \w{4} \w{4} \w{4} \w{3}(空格)

GR\d{2}\d{4}\d{3}\w\w{4}\w{4}\w{4}\w{3}(没有空格,没有破折号)

GR\d{2}-\d{4}-\d{3}\w-\w{4}-\w{4}-\w{4}-\w{3}(破折号)

这可能吗?

任何人都可以提供的任何帮助将不胜感激。谢谢!

4

1 回答 1

1

根据您使用的语言,您可能可以做一些更复杂的事情,但最简单的方法是使用交替:

GR\d{2}( \d{4} \d{3}\w \w{4} \w{4} \w{4} \w{3}|\d{7}\w{16}|-\d{4}-\d{3}\w-\w{4}-\w{4}-\w{4}-\w{3})

例如,使用 Perl 或 C# 风格的正则表达式,您可以记住并引用匹配项:

GR\d{2}(?<sep>[ -]?)\d{4}\k<sep>\d{3}\w\k<sep>\w{4}\k<sep>\w{4}\k<sep>\w{4}\k<sep>\w{3}
于 2017-07-14T22:53:06.373 回答