Python电子邮件正则表达式不起作用

时间:2015-08-03 08:49:57

标签: python regex python-3.x

我正在尝试使用正则表达式和Python从文本文件中获取所有电子邮件地址,但它总是返回NoneType,同时它会返回电子邮件。例如:

content = 'My email is lehai@gmail.com'
#Compare with suitable regex
emailRegex = re.compile(r'(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)')
mo = emailRegex.search(content)
print(mo.group())

我怀疑问题在于正则表达式,但无法找出原因。

3 个答案:

答案 0 :(得分:2)

由于content中的空格;移除^$以匹配任何位置:

([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)

答案 1 :(得分:0)

尝试将此作为正则表达式,但我完全不确定它是否适合您:

<强>([^ @ | \ S] + @ [^ @] + [^ @ | \ S]。+)

答案 2 :(得分:0)

您的正则表达式与模式不匹配。

我通常会像这样调用正则表达式搜索:

mo = re.search(regex, searchstring) 

所以在你的情况下我会尝试

content = 'My email is lehai@gmail.com'
#Compare with suitable regex
emailRegex = re.compile(r'gmail')
mo = re.search(emailRegex, content)
print(mo.group())`

您可以在此处测试正则表达式:https://regex101.com/ 这将有效:

([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)