python中电子邮件解析的正则表达式

2024-03-29 10:08:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我被要求写一个正则表达式,它可以捕捉多域电子邮件地址并用python实现。因此,我提出了以下正则表达式(和代码;重点是regex),我认为这是正确的:

import re
regex = r'\b[\w|\.|-]+@([\w]+\.)+\w{2,4}\b'
input_string = "hey my mail is abc@def.ghi"
match=re.findall(regex,input_string)
print match

现在,当我运行这个(使用一个非常简单的邮件)它没有捕捉到它!! 相反,它显示一个空列表作为输出。有人能告诉我我在正则表达式文字中哪里出错了吗?在


Tags: 代码importre重点inputstringis电子邮件
1条回答
网友
1楼 · 发布于 2024-03-29 10:08:16

这里有一个简单的开始

regex = r'\b[\w.-]+?@\w+?\.\w+?\b'
re.findall(regex,input_string)  # ['abc@def.ghi']

原来的一个问题是在字符类([..])中不需要|运算符。只需将[\w|\.|-]写成[\w.-](如果-在末尾,则不需要转义它)。在

其次,合法域名的变化太多了。只需在@符号后查找至少一个由单词字符包围的句点:

^{pr2}$

相关问题 更多 >