Python 正则表达式提取地址、电话和传真
我有一个python字符串,它是我从解析网页中检索到的Python 正则表达式提取地址、电话和传真,python,regex,Python,Regex,我有一个python字符串,它是我从解析网页中检索到的 str1='Suite 100, 2010 Eglinton Avenue West, Toronto ON M6E 2K3, Phone: (416) 781-2050, Fax: (416) 781-1910' 显然,str1拥有所有数据。此字符串有时没有电话和传真。例如 str1="""Suite 100, 2010 Eglinton Avenue West, Toronto ON M6E 2K3,
str1='Suite 100, 2010 Eglinton Avenue West, Toronto ON M6E 2K3,
Phone: (416) 781-2050, Fax: (416) 781-1910'
显然,str1拥有所有数据。此字符串有时没有电话和传真。例如
str1="""Suite 100, 2010 Eglinton Avenue West, Toronto ON M6E 2K3,"""
有人能告诉我,在这两种情况下,在地址、电话和传真三个不同的变量中,什么是获得信息的最佳正则表达式
感谢您的帮助通过
电话:
或传真:
:
import re
str1='Suite 100, 2010 Eglinton Avenue West, Toronto ON M6E 2K3, Phone: (416) 781-2050, Fax: (416) 781-1910'
re.split("Phone:|Fax:", str1)
您可以使用此正则表达式,它捕获地址、电话和传真三个组中的数据,并将电话和传真组作为可选组
(?<Address>.+)\s*(?:Phone:\s*(?<Phone>[^a-zA-Z]*))?\s*(?:Fax:\s*(?<Fax>.*))?
(
如果您遇到任何问题,请告诉我。至少包括任何开始的尝试,如果有更好的方法,您可以包括URL吗?这些类型的问题不是关于堆栈溢出的问题。不应该是具体的用例,而是关于使用正则表达式背后更一般的想法的问题。很高兴提供帮助:)