Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式提取地址、电话和传真_Python_Regex - Fatal编程技术网

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,

我有一个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,"""
有人能告诉我,在这两种情况下,在地址、电话和传真三个不同的变量中,什么是获得信息的最佳正则表达式


感谢您的帮助

通过
电话:
传真:

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吗?这些类型的问题不是关于堆栈溢出的问题。不应该是具体的用例,而是关于使用正则表达式背后更一般的想法的问题。很高兴提供帮助:)