【问题标题】:IBAN Regex to include spaces and dashIBAN 正则表达式包括空格和破折号
【发布时间】:2017-12-20 01:36:27
【问题描述】:

我正在尝试创建一个允许/注册 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}(没有 spcaes,没有破折号)

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

这可能吗?

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

【问题讨论】:

标签: regex iban


【解决方案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}

【讨论】:

  • 感谢您的回复!
  • 感谢您的回复!您的正则表达式与“GR1601101250000000012300695”匹配,但不匹配“GR 16 0110 125 0 0000 0001 2300 695”或“GR-16-0110-125-0-0000-0001-2300-695”。我正在尝试发现 IBAN 号码是否没有空格、空格、破折号,甚至是组合。
  • @NetMage 看起来 backref 模式问题不大,捕获应该是after GR and one is missing between \d{3}\w
  • 实际上,标准规定分隔符每四个字符出现一次。再看看原来的问题。
  • 您好!很抱歉延迟回复。泡泡,你的正则表达式确实有效,但我不确定我正在使用的应用程序是否可以“消化” k 参考。是否可以通过以下方式获得相同类型的输出: GR\d{2}[ -.]\d{4}[ -.]\d{3}[ -.]\w[ -.]\ w{4}[ -.]\w{4}[ -.]\w{4}[ -.]\w{3}?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-22
相关资源
最近更新 更多