我正在尝试使用正则表达式和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())
我怀疑问题在于正则表达式,但无法找出原因。
答案 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-.]+$)