正则表达式,用于将所有匹配项查找为单个值

时间:2018-10-28 16:57:23

标签: python python-3.x

我不熟悉python中的正则表达式,并试图查找字符串中所有出现的电话号码,其中带+号的国家/地区代码不是必填项

import re
st="it contains std code +91-888-888-9999 and 777-897-4565"

pattern=r"(\+?\d{2}\-)?\d{3}-\d{3}-\d{4}"

c=re.findall(pattern,st)
if c is not None:
    print(c)
else:
    print("it is none")

如果我使用搜索,则仅返回第一个匹配项。使用findall会返回一个列表,其中括号中的模式作为第一个值匹配,而空的则作为下一个

['+ 91-','']

如果将样式更改为

pattern=r"(\+?\d{2}\-)?(\d{3}-\d{3}-\d{4})"

我得到以元组代码为第一个值和电话号码为第二个值的元组列表。 我可以使用search()和findall()作为一个单位来获取整个值,例如+ 91-888-888-9999。 请更新

0 个答案:

没有答案