【问题标题】:Updating regex for extracting IBAN's更新正则表达式以提取 IBAN
【发布时间】:2021-04-26 01:01:01
【问题描述】:

我有一个提取德国和奥地利 IBAN 的正则表达式。但是,我才意识到,html 代码有时会有奇怪的格式。

\b(?:DE|AT)(?:\s?[0-9a-zA-Z]){18}(?:(?:\s?[0-9a-zA-Z]){2})?\b

因此,我必须排除无效的 IBAN 匹配项。在我的demo 中,我展示了显示不匹配的示例。你会如何排除这个?

【问题讨论】:

  • 删除字符 a-z 并使用空格代替 \s,如 \b(?:DE|AT)(?: ?[0-9]){18}(?:(?: ?[0-9]){2})?\b regex101.com/r/aWQcKX/1
  • 非常感谢您的帮助。这是有道理的。问题解决了:-)
  • 也许重新考虑您用来提取有效 IBAN 的模式。 Here 是您自己上一个问题的开始。

标签: python regex


【解决方案1】:

您似乎只想匹配数字。因此,您可以从字符类中删除 a-zA-Z。另请注意,\s 也可以匹配换行符,因此如果您不希望匹配跨越换行符,则可以匹配可选空格。

\b(?:DE|AT)(?: ?[0-9]){18}(?:(?: ?[0-9]){2})?\b

查看更新后的regex demo

【讨论】:

    猜你喜欢
    • 2019-08-08
    • 2017-04-11
    • 2017-11-23
    • 2014-06-17
    • 2021-12-05
    • 2021-10-22
    • 2016-09-09
    • 2015-05-28
    相关资源
    最近更新 更多