正则表达式提取地址,电话和传真

时间:2018-12-01 05:49:03

标签: 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,"""

有人可以告诉我在三种情况下,分别通过地址,电话和传真获取信息的最佳正则表达式是什么。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式来捕获地址,电话和传真三个组中的数据,并使电话和传真组为可选,

(?<Address>.+)\s*(?:Phone:\s*(?<Phone>[^a-zA-Z]*))?\s*(?:Fax:\s*(?<Fax>.*))?

Demo

让我知道您是否遇到任何问题。

答案 1 :(得分:1)

Phone:Fax:分隔:

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)