我的电子邮件正则表达式搜索正在提取.comthis而不是.com域名,如何让它只搜索有用的域名?
regex = re.compile(("([a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`"
"{|}~-]+)*(@|\sat\s)(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(\.|"
"\sdot\s))+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)"))
答案 0 :(得分:-1)
这是我认为可能有用的东西
import re
s = 'My name is Conrad, and blahblah@gmail.com is my email.'
domain = re.search("@[\w.]+", s)
print domain.group()
输出
@ gmail.com 正则表达式的工作原理:
@ - scan till you see this character
[\ w。]可能匹配的一组字符,因此\ w是所有字母数字字符和尾随句点。添加到那组字符。
因为这个正则表达式匹配句点字符和@之后的每个字母数字,所以即使在句子中间,它也会匹配电子邮件域。