我有以下长串:
emails = '''
CoreyMSchafer@gmail.com
corey.schafer@university.edu
corey-321-schafer@my-work.net
'''
我要使用正则表达式从该字符串中将本地部分,域和主域提取为三个列表
使用以下代码:
pat = re.compile(r'([a-zA-Z0-9.-]*)(@[a-z-]+)(.\w+)')
matches = pat.findall(emails)
我得到以下列表,其中包含个人元组:
[('CoreyMSchafer', '@gmail', '.com'), ('corey.schafer', '@university', '.edu'), ('corey-321-schafer', '@my-work', '.net')]
如果我再用以下方式打开元组的包装:
local_part, domains, main_domains = zip(*matches)
我将得到三个元组,各个元素分开,如下所示:
('CoreyMSchafer', 'corey.schafer', 'corey-321-schafer') # local parts
('@gmail', '@university', '@my-work') # domains
('.com', '.edu', '.net') # main domains
我希望有三个列表而不是三个元组。
我尝试了以下方法:
a,b,c = map(list,zip(*matches))
但是我随后收到以下错误消息:
TypeError Traceback (most recent call last)
<ipython-input-224-73e06f3c6d27> in <module>()
----> 1 a,b,c = map(list,zip(*matches))
TypeError: 'list' object is not callable