Regex忽略字符串之间的多行并选择特定的行

  • 本文关键字:选择 字符串 之间 Regex regex
  • 更新时间 :
  • 英文 :


我有一个这样的示例,我只想从联系人信息部分获取姓名,地址电话和电子邮件行

**网站信息**

名称: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'}})

最新更新