有一个字符串:
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'
我想解析该字符串中的所有电子邮件,因此我设置了:
p = r'[\w\.]+@[\w\.]+'
re.findall(p, str)
结果是:
['zheng.z@xxx.com', 'Zheng.Z@xxx.com', 'john.will@xxx.com']
显然,第一个和第二个是重复的。我们如何防止这种情况发生?
答案 0 :(得分:4)
您可以使用set
删除重复项。 set
就像无序的list
,它不能包含重复项。在这种情况下,您不必关心案例,因此将结果设为小写会让您正确检查重复项。
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)))