gpt4 book ai didi

Python 电话号码正则表达式

转载 作者:行者123 更新时间:2023-11-30 22:08:46 25 4
gpt4 key购买 nike

我对正则表达式非常陌生,正在寻求帮助从 HTML 文本中解析出电话号码

在源站点,html 标签非常扭曲并且没有任何我可以使用的独特选择器。下面是我想要解析的可能性列表。

raw = """+49 39291 55-217
02102 7007064
0152 01680970
+49 39291 55-216
02102 3802 22
0800 333004 451-100
+49 221 9937 26950
02151-47974510
+49(0)6105 937 -539
0211/409 2268
+49(0)6105 937 -539
+49211/584-623
0211 58422 2012
+49 (9131) 7-35335
+49 521 9488 2470
+ 49-40-70 70 84 - 0
0211 17 95 99 04
02151-47974327
+49 203 28900 1121
0211 9449-2555
+49 (5 41) 9 98 -2268"""

我尝试了这种模式,但无法从中看出更多内容

import re, requests

Phones = re.findall(re.compile(r'.*?(\(?\d{3}\D{0,3}\d{3}\D{0,3}\d{4}).*?'),raw)

phones
['102 7007064', '152 0168097', '151-4797451', '937 -539\n0211', '937 -539\n+4921', '584-623\n0211', '151-4797432']

非常感谢任何建议或帮助。谢谢

最佳答案

我建议使用这种模式:

(?:\B\+ ?49|\b0)(?: *[(-]? *\d(?:[ \d]*\d)?)? *(?:[)-] *)?\d+ *(?:[/)-] *)?\d+ *(?:[/)-] *)?\d+(?: *- *\d+)?

请参阅regex demo 。注意它是根据 your comment 编写的说电话号码以 +49 开头或0 以及您提供的示例列表中。由于您尚未提供更具体的电话号码提取规则,因此它可能被视为“正在进行中”。

图案详细信息

  • (?:\B\+ ?49|\b0) - 一个+ ,可选空格,490 ,两个子字符串前面都不能有单词 char
  • (?: *[(-]? *\d(?:[ \d]*\d)?)? - 匹配 0+ 个空格的可选子字符串,然后是可选的 (- 、0+ 个空格、一个数字,然后是可选的数字/空格序列,后跟一个数字
  • *(?:[)-] *)? - 0+ 个空格,然后是可选的 ) 序列或-后跟 0+ 个空格
  • \d+ - 1+ 位数字
  • * - 0+ 个空格
  • (?:[/)-] *)? - 可选序列/ , )-后跟 0+ 个空格
  • \d+ - 1+ 位数字
  • *(?:[/)-] *)? - 0+ 个空格,然后是可选的 / 序列, )-后跟 0+ 个空格
  • \d+ - 1+ 位数字
  • (?: *- *\d+)? - 可选序列:0+空格,- , 0+ 个空格, 1+ 个数字。

关于Python 电话号码正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52093555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com