使用 Python 从文本中提取 IBAN

2024-01-07

我想用 Python 从文本中提取 IBAN 号码。这里的挑战是,IBAN 本身可以用多种方式编写,数字之间有空格,我发现很难将其转换为有用的正则表达式模式。

我写了一个演示版 https://regex101.com/r/PRDDaT/1它尝试匹配文本中的所有德国和奥地利 IBAN 号码。

^DE([0-9a-zA-Z]\s?){20}$

我在 stackoverflow 上看到过类似的问题。然而,结合不同的 IBAN 号码书写方式以及从文本中提取这些号码,使得解决我的问题变得非常困难。

希望你能帮助我!


ISO landcode Verification# Bank# Account#
Germany 2a 2n 8n 10n
Austria 2a 2n 5n 11n

Note: a - alphabets (letters only), n - numbers (numbers only)

所以主要的区别实际上是数字的长度。这意味着你可以尝试:

\b(?:DE(?:\s*\d){20}|AT(?:\s*\d){18})\b(?!\s*\d)

看网上的demo https://regex101.com/r/PRDDaT/5.


  • \b- 词边界。
  • (?: - Open 1st non-capturing group.
    • DE- 按字面意思匹配大写“DE”。
    • (?:- Open 2nd non-capturing group.
      • \s*\d- 零个或多个空格,最多一个数字。
      • ){20}- 关闭第2个非捕获组并匹配20次。
    • | - Or:
    • AT- 按字面意思匹配大写“AT”。
    • (?:- Open 3rd non-capturing group.
      • \s*\d- 零个或多个空格,最多一个数字。
      • ){18}- 关闭第2个非捕获组并匹配20次。
    • )- 关闭第一个非捕获组。
  • \b- 词边界。
  • (?!\s*\d)- 负向前瞻以防止任何尾随数字。

它确实表明您的奥地利 IBAN 号码无效。如果您希望提取到它们仍然有效的程度,我想您可以删除\b(?!\s*\d)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 从文本中提取 IBAN 的相关文章

随机推荐

  • 如何在Excel电子表格列中查找连续数字的特定数据

    请帮助我找到电子表格列中存在的数字序列 我的Excel列中有大量1和0的数据 我需要找到该列中连续的1和0的序列 例如 我的excel列如下 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 请假设这是我的一些列数
  • 原始数组与 ArrayList

    我正在接收 XML 需要转换为原始数组或 ArrayList 内存和垃圾回收方面的性能有很大差异吗 我的应用程序每秒将创建数千个这样的对象 并且我需要最大限度地减少 GC 因为我需要实时性能 Thxs 原始数组效率更高 因为它们不需要包装对
  • Javascript 中对具有属性的函数引用的混淆

    在下面的 JavaScript 代码中 function foo foo val foo val no val return foo has foo val function bar bar val bar val no val retur
  • 从模块中角度导出的组件在另一个模块中不可用

    我正在 AppModule 中导出自定义组件 但无法在 AppModule 中导入的另一个模块中使用它 我认为导出的组件在全球范围内都是可见的 我试图在 TestModule 内的组件中使用 CalendarComponent 和选择器 a
  • 发布代码覆盖率在 Azure DevOps 中找不到覆盖率文件

    我正在使用节点14 x和开玩笑26 x 有一个npm testpackage json 文件中的脚本包含以下内容 cross env NODE ENV test jest coverage forceExit 当我在本地运行它时 它会生成代
  • 我可以将自定义分区器与 group by 一起使用吗?

    假设我知道我的数据集不平衡并且我知道键的分布 我想利用它来编写一个自定义分区器 以充分利用运算符实例 我知道关于数据流 partitionCustom https ci apache org projects flink flink doc
  • Qt/Qt Creator - 程序意外完成。 <程序路径>崩溃了

    我对 C 和 Qt 5 2 1 有点陌生 我实际上正在学习如何使用Qt 为了尽可能简单地做到这一点 我使用 Qt Creator 3 0 1 我在项目的 main cpp 文件中编写了这一小段代码 include
  • 当命令行给出 -jvm-debug 时,如何在测试中设置 fork?

    如果项目在调试模式下运行 是否有办法有条件地禁用分叉 sbt jvm debug 9999 然后在我的构建中 fork in Test find a key that lets me know if debugging in set up
  • 使用 bar 函数时如何在 x 轴上显示分类数据?

    我正在尝试模拟 MATLAB 官方网站上的代码 但无法获得相同的输出 这是代码 c categorical apples oranges pears prices 1 23 0 99 2 3 bar c prices 这是 MATLAB 网
  • 如何从Excel列字母中获取列号(或索引)

    我搜索过这个网站并用谷歌搜索了一个公式 我需要根据字母计算 Excel 列号 例如 A 1 B 2 AA 27 AZ 52 AAA 703 在字母表随机循环后 代码似乎少了 1 位数字 AZ gt BA 少数字 它看起来还会从两个不同的输入
  • 如何检测 JComboBox 是否为空?

    如何检测 JComboBox 是否为空 是不是类似 combobox isEmpty 出了什么问题JComboBox getItemCount http docs oracle com javase 7 docs api javax swi
  • 隐马尔可夫模型 (HMM) 中的三态电话模型

    我想问一下HMM中3态电话模型的含义 本案例基于语音识别系统中的HMM理论 因此 该示例基于 HMM 中语音的声学建模 我从期刊论文中得到了这张示例图片 http www intechopen com source html 41188 m
  • 如何在 Github Atom Editor 中同步多台计算机的包和设置

    我已经在我的个人电脑和办公室电脑上安装了 Github Atom Editor 我想将设置和软件包同步到我的 Dropbox 帐户 这样当我登录办公室电脑时 它会自动下载或更新所有软件包和设置到我的家庭电脑 您是否尝试过使用原子同步设置 h
  • CMU Sphinx 是否可以通过 Maven 获得?

    我有一个可能需要 CMU Sphinx 的应用程序的想法 它可以通过 Maven 获得 还是需要手动添加 更新 CMUSphinx 将在一周左右的时间内在 sonatype 中提供 Maven 支持已经提交到 sphinx4 trunk 中
  • go-git:创建本地分支的正确方法,模拟“git分支 ”的行为?

    正如标题所示 我试图弄清楚如何使用创建本地分支go git与 Git CLI 命令给出相同结果的方式git branch
  • 防止“冒泡”? [复制]

    这个问题在这里已经有答案了 我不确定这是否真的在冒泡 我会解释一下 我有这个 div div text here div div 如何绑定点击事件 使其仅影响所包含的 div 如果我这样设置 jQuery div bind click fu
  • 使用elasticsearch实施建议“类别中的xxx”

    我想对产品实施类似亚马逊的 类别内 建议 亚马逊建议在特定类别中搜索给定术语 而不是全局搜索 这允许更具体的搜索和结果 有没有办法使用elasticsearch提供的建议功能之一来实现这一点 目前我的想法是从elasticsearch获取建
  • mongoDB vs mySQL——为什么一个在某些方面比另一个更好[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 评估骰子滚动符号字符串

    Rules 编写一个接受字符串作为参数的函数 返回 表达式的评估值骰子记数法 http en wikipedia org wiki Dice notation 包括加法和乘法 为了澄清问题 这里是法律表达式的 EBNF 定义 roll po
  • 使用 Python 从文本中提取 IBAN

    我想用 Python 从文本中提取 IBAN 号码 这里的挑战是 IBAN 本身可以用多种方式编写 数字之间有空格 我发现很难将其转换为有用的正则表达式模式 我写了一个演示版 https regex101 com r PRDDaT 1它尝试