如何在Python中删除正则表达式(re)的重复结果

如何在Python中删除正则表达式(re)的重复结果,python,expression,Python,Expression,有一个字符串: str = 'Please Contact Prof. Zheng Zhao: <a href="mailto:zheng.z@xxx.com">Zheng.Z@xxx.com</a> for details, or our HR: john.will@xxx.com' 结果是: ['zheng.z@xxx.com', 'Zheng.Z@xxx.com', 'john.will@xxx.com'] 显然,第一个和第二个是重复的。如何防止这种情况发生?您

有一个字符串:

str = 'Please Contact Prof. Zheng Zhao: <a href="mailto:zheng.z@xxx.com">Zheng.Z@xxx.com</a> for details, or our HR: john.will@xxx.com'
结果是:

['zheng.z@xxx.com', 'Zheng.Z@xxx.com', 'john.will@xxx.com']

显然,第一个和第二个是重复的。如何防止这种情况发生?

您可以使用
集删除重复项。一个
集合
就像一个无序的
列表
,不能包含重复项。在本例中,您不关心大小写,因此将结果小写将允许您正确检查重复项

import re

s = 'Please Contact Prof. Zheng Zhao: <a href="mailto:zheng.z@xxx.com">Zheng.Z@xxx.com</a> for details, or our HR: john.will@xxx.com'

p = r'[\w\.]+@[\w\.]+'
list(set(result.lower() for result in re.findall(p, s)))
重新导入
s='请联系郑昭教授:了解详情,或联系我们的人力资源部:约翰。will@xxx.com'
p=r'[\w\.]+@[\w\.]+'
列表(set(result.lower()表示re.findall(p,s)中的结果)

您可以使用
集删除重复项。一个
集合
就像一个无序的
列表
,不能包含重复项。在本例中,您不关心大小写,因此将结果小写将允许您正确检查重复项

import re

s = 'Please Contact Prof. Zheng Zhao: <a href="mailto:zheng.z@xxx.com">Zheng.Z@xxx.com</a> for details, or our HR: john.will@xxx.com'

p = r'[\w\.]+@[\w\.]+'
list(set(result.lower() for result in re.findall(p, s)))
重新导入
s='请联系郑昭教授:了解详情,或联系我们的人力资源部:约翰。will@xxx.com'
p=r'[\w\.]+@[\w\.]+'
列表(set(result.lower()表示re.findall(p,s)中的结果)