首页 > 解决方案 > 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

标签: pythonre

解决方案


您需要为该号码添加另一个捕获组。

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]

推荐阅读