我被要求写一个正则表达式,它可以捕捉多域电子邮件地址并用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
现在,当我运行这个(使用一个非常简单的邮件)它没有捕捉到它!! 相反,它显示一个空列表作为输出。有人能告诉我我在正则表达式文字中哪里出错了吗?在
这里有一个简单的开始
原来的一个问题是在字符类(
[..]
)中不需要|
运算符。只需将[\w|\.|-]
写成[\w.-]
(如果-
在末尾,则不需要转义它)。在其次,合法域名的变化太多了。只需在
^{pr2}$@
符号后查找至少一个由单词字符包围的句点:相关问题 更多 >
编程相关推荐