[英]Extract phone number using regex with different formats python
嗨,我有一串文本,其中包含许多不同格式的电话号码,我需要能够仅提取电话号码。
例如:“嗨,我的名字是 marc,我的电话号码是 03-123456,我想要 2 瓶 0.5L 的水”
可能的电话格式:
我可以通过查找(03 或 70 或 76 或 71)在 python 中使用 find 函数找到索引,但我无法找到最后一个数字的索引。
number_start = message.find('03' or '70' or '76' or '71')
有任何想法吗?
你可以用
\b(?:03|7[016])[- /]?\d{3} ?\d{3}\b
解释
\\b
一个词边界(?:03|7[016])
匹配03
70
71
76
[- /]?
可选匹配-
空格或/
\\d{3} ?\\d{3}
匹配 6 位数字,第 3 位数字后有一个可选的空格\\b
一个词边界例如
import re
regex = r"\b(?:03|7[016])[- /]?\d{3} ?\d{3}\b"
test_str = "Hi my name is marc and my phone number is 03-123456 and i would like 2 bottles of water 0.5L"
matches = re.search(regex, test_str)
if matches:
print(matches.group())
输出
03-123456
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.