我有一个这样的示例,我只想从联系人信息部分获取姓名,地址电话和电子邮件行
**网站信息**
名称:BBB
地址:EFG Street
在:
**联系方式**
ABC名称:
公司:PQR
地址:EFG Street
在:
电话:12345
电子邮件:llcd@gmail.comXYZ
职业:
我试图利用——祝辞(& lt; =客户提供网站信息* {2}[r n ])。 n [r]名称: s([r ^ n ] *)这是工作只有名字。任何人都可以帮助我在这里找到合适的正则表达式为剩余的字段以及
使用python
作为每个人的dict
来获得结果的方法之一。
data = """** Site Info **
Name: BBB
Address: EFG Street
Country: IN
** Contact Info **
Name: ABC
Company: PQR
Address: EFG Street
Country: IN
Phone: 12345
Email: llcd@gmail.com
Occupation: XYZ
"""
from collections import defaultdict
out = defaultdict(dict)
got_contact_info = False
name = None
for line in data.split('n'):
line = line.strip()
if 'Contact Info' in line:
got_contact_info = True
continue
if not got_contact_info:
continue
if 'Name' in line:
name = line.split(':')[1]
elif 'Address' in line:
out[name]['Address']=line.split(':')[1].strip()
elif 'Phone' in line:
out[name]['Phone']=line.split(':')[1].strip()
elif 'Email' in line:
out[name]['Email']=line.split(':')[1].strip()
print (out)
输出:
defaultdict(<class 'dict'>, {' ABC': {'Address': 'EFG Street', 'Phone': '12345', 'Email': 'llcd@gmail.com'}})