python - Python 正则表达式无法识别文本
问题描述
我写了一个应该识别的正则表达式string: number
。我没有收到任何错误,但我只有string:
没有number
有几个词的变体应该代表字符串,数字应该是 7 到 9 位的整数。
import re
text = 'Center Postfach 2250 Kundennummer: 90289963 CH-4002 Basel Frau Re'
regex = r"(kundennummer|kundennummer.|kundennummer:|numéro d'abonné||Kunden Nr.|No de client:)\s\d{7,9}"
gpnumber_list = re.findall(regex, text, re.IGNORECASE)
print(gpnumber_list) #['Kundennummer:']
预期结果:
Kundennummer: 90289963
解决方案
您需要为该号码添加另一个捕获组。
regex = r"(kundennummer|kundennummer.|kundennummer:|numéro d'abonné||Kunden Nr.|No de client:)\s(\d{7,9})"
注意周围的括号\d{7,9}
。
如评论中所指出的,要获取字符串列表,您可以简单地加入匹配的组
[" ".join(item) for item in gpnumber_list]
推荐阅读
- attributes - 在 pentaho (kettle) 中合并属性
- jquery - 在范围图像滑块上添加悬停工具提示和播放/暂停按钮
- blockchain - Besu 同步对等点计数不准确
- javascript - 使用 React Router DOM 时路径被修改
- python - 如何停止 python 中的线程,该线程本身在循环中被调用?
- python - 使用python的webjob/function的文件结构和初始化方法
- javascript - 打字稿防止将字符串文字泛化为类型
- reactjs - 使用模拟 React Jest 测试组件
- php - 如何从api获取shopee商品售价
- javascript - 当树的宽度和高度增长或缩小时,如何使 D3.js 可折叠树重新调整 SVG 的大小