我想从字符串中提取多个电子邮件地址。我正在使用以下正则表达式:
re.findall(r'[\w\.-]+@[\w\.-]+(?:\.[\w]+)+', text)
它运作良好,但有时相同域名的文本电子邮件名称会用花括号分组:
{annie,bonnie}@gmail.com
我的问题是如何正确解析它并提取出单独的电子邮件地址:
annie@gmail.com, bonnie@gmail.com
?
我尝试修改正则表达式以考虑括号和逗号,并跟随简单函数,但在这种情况下,我从字符串中得到了很多垃圾。
非常感谢任何帮助。
r'(?:({[^{}]*})|[\w.-]+)(@[\w.-]+(?:\.\w+)+)'
的东西,一旦找到匹配项,就可以检查第1组是否匹配,如果是,则用逗号分隔并构建结果输出。 - Wiktor Stribiżew