问一个关于邮箱的正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问一个关于邮箱的正则表达式相关的知识,希望对你有一定的参考价值。

有个QQ邮箱是519115466.@qq.com(这是个错的邮箱),为什么这个正则匹配$pattern="/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]2,3([\.][a-z]2)?/i"; 用preg_match($pattern, ’519115466.@qq.com‘)匹配下来是@qq.com,像这么个错的邮箱应该怎么改呢或让他匹配的是个全的邮箱格式

参考技术A \w+([-+.']\w+\.*)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
试试这个

可以匹配的,

或者修改你的正则表达式
$pattern="/([a-z0-9]*[-_\.]?[a-z0-9]+\.*)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]2,3([\.][a-z]2)?/i";
参考技术B preg_match()有个第3个参数,好好看看吧本回答被提问者采纳

Python学习手册之正则表达式示例--邮箱地址提取

在上一篇文章中,我们介绍了 Python 的捕获组和特殊匹配字符串,现在我们介绍 Python 的正则表达式使用示例。查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10040430.html

邮箱地址提取
为了演示正则表达式的示例用法,我们创建一个从字符串中提取电子邮箱地址的程序。假设我们有一个包含电子邮箱地址的字符串。

string = "Please contact [email protected] for assistance"

我们希望提取出类似 [email protected] 的字符串。一个典型的电子邮件地址由一个词组成,可以包括点或破折号。接下来是@符号和域名 (名词、一个点和域名后缀) 。下面我们来构建正则的基础框架。

pat = r([w.-]+)@([w.-]+)(.[w.]+)

[w.-]+ 匹配一个或多个字符串,点或破折号。上面的正则表达式表示字符串应该包含一个单词 (包含点和破折号) , 后面跟着 @ 符号,接着是另一个类似的单词,然后是一个点和另一个单词。

我们的正则包含三个组:
1、 电子邮箱的第一部分用户名
2、 无后缀的域名
3、 域名的后缀
import re

string = "Please contact [email protected] for assistance"
pat = r([w.-]+)@([w.-]+)(.[w.]+)

match = re.search(pat,string)
if match:
 print(match.group())

运行结果:

如果字符串包含多个电子邮件地址,我们可以使用 re.findall 方法而不是 re.search 来提取电子邮件地址。

本文中的正则实例只是为了演示目的,在现实情况下需要更复杂的正则表达式才能完全验证电子邮件地址。

 

 

 

 “如果你想战胜恐惧,不要坐在家里空想,走出去,动起来。” -- 戴尔·卡耐基


以上是关于问一个关于邮箱的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

关于判断邮箱 手机号等一系列的正则表达式。。。。。

JAVA中写邮箱格式的正则表达式,怎么写?

java的一个匹配多个邮箱的地址的正则表达式问题。

Java必学知识Java核心-正则表达式

正则表达式验证邮箱格式是啥?

java 带要求的验证邮箱的正则表达式