我不熟悉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。 请更新