【发布时间】:2013-02-21 14:43:24
【问题描述】:
我开发并应用程序从文件中收集任何类型的电子邮件 类型:ishani@dolly.lk ishani(at)dit.dolly.lk cs dot dolly dot edu的ishani
但问题是输出显示了列表中的一些额外项目,而不是提取的完整电子邮件。我无法弄清楚为什么会这样。我尝试了各种方式。我认为我的正则表达式或逻辑有问题
这是我的代码
data=f.read()
regexp_email = r'(([\w]+)@([\w]+)([.])([\w]+[\w.]+))|(([\w]+)(\(at\))([\w]+)([.])([\w]+[\w.]+))|(([\w]+)(\sat\s)([\w-]+)(\sdot\s)([\w]+(\sdot\s[\w]+)))'
pattern = re.compile(regexp_email)
emailAddresses = re.findall(pattern, data)
print emailAddresses
输出是这样的
[('ishani@sliit.lk', 'ishani', 'sliit', '.', 'lk', '', '', '', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', 'ishani(at)dit.sliit.lk', 'ishani', '(at)', 'dit', '.', 'sliit.lk', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', '', '', '', '', 'ishani at cs dot dolly dot edu', 'ishani', ' at ', 'cs', ' dot ', 'dolly dot edu', ' dot edu')]
但我期待这样的输出
['ishani@dolly.lk','ishani(at)dit.dolly.lk','ishani at cs dot dolly dot edu']
是否有人尝试过任何支持我的问题的方法?
【问题讨论】:
标签: python regex python-2.7