首先附上代码

^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$

在这段正则表达式中,“+”表示前面的字符串连续出现一个或多个;“^”表示下一个字符串必须出现在开头,“$”表示前一个字符串必须出现在结尾;

“.”也就是“.”,这里“”是转义符;“{2,3}”表示前面的字符串可以连续出现2-3次。“()”表示包含的内容必须同时出现在目标对象中。“[_.0-9a-z-]”表示包含在“_”、“.”、“-”、从a到z范围内的字母、从0到9范围内的数字中的任意字符;

这样一来,这个正则表达式可以这样翻译:

“下面的字符必须在开头(^)”、“该字符必须包含在“_”、“.”、“-”、从a到z范围内的字母、从0到9范围内的数字中([_.0-9a-z-])”、“前面这个字符至少出现一次(+)”、@、“该字符串由一个包含在从a到z范围内的一个字母、从0到9范围内的数字中的字符开头,后面跟至少一个包含在“-”、从a到z范围内任何一个字母、从0到9范围内任何一个数字中的字符,最后以.结束(([0-9a-z][0-9a-z-]+.))”、“前面这个字符至少出现一次(+)”、“从a到z范围内的字母出现2-3次,并以它结束([a-z]{2,3}$)”

function is_valid_email($email, $test_mx = false)

{

if(eregi("^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})[ wind_phpcode_0 ]quot;, $email))

if($test_mx)

{

list($username, $domain) = split("@", $email);

return getmxrr($domain, $mxrecords);

}

else

return true;

else

return false;

}

域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。

/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i;

/内容/i 构成一个不区分大小写的正则表达式;

^ 匹配开始

$ 匹配结束

[a-z] E-Mail前缀必需是一个英文字母开头

([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。

*表示0个或多个前面的字符.

[a-z0-9]* 匹配0个或多个英文字母或者数字

[-_]? 匹配0个或1“-”,因为“-”不能连续出现

[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾

@ 必需有个有@

([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。

[.] 将特殊字符(.)当成普通字符

[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等.

([.][a-z]{2})? 匹配0个或者1个[.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}

完美E-Mail正则表达式,附详细讲解,请大家帮忙测试一下! 2.抽取字符串中的email:

function getEmail($str) {

$pattern = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";

preg_match_all($pattern,$str,$emailArr);

return $emailArr[0];

}

$emailstr = "9999@qq.com.cn俺不是米vi地方就开iid邮件列表:fuyongjie@163.com和hh@qq.com;.;;,fuyongjie.100@yahoo.com,fu-1999@sina.com";

$emailArr = getEmail($emailstr);

echo "

";

print_r($emailArr);

echo "

";

?>打印如下:

Array

(

[0] =>9999@qq.com.cn

[1] =>fuyongjie@163.com

[2] =>hh@qq.com

[3] =>fuyongjie.100@yahoo.com

[4] =>fu-1999@sina.com

)3.比较:第2里的正则里没有了第1的^和$;

再看实例

function funcemail($str)//邮箱正则表达式

{

return (preg_match('/^[_.0-9a-z-a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/',$str))?true:false;

}//验证方法一

$str="qbcd@126.com.cn";

preg_match("/^[0-9a-z]+@(([0-9a-z]+)[.])+[a-z]{2,3}$/",$str,$re);

print_r($re);//邮箱验证二

if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {

echo "您的 e-mail 通过初步检查";

}//第三种邮箱验证方法

if (ereg("/^[a-z]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i; ",$email)){

echo "your email address is correct!";}

else{

echo "please try again!";

}

php 正则获取邮箱后缀名,php中邮箱地址正则表达式实现与详解相关推荐

  1. PHP中邮箱地址的正则表达式,php邮箱地址正则表达式实现与详解,邮箱地址正则表达式_PHP教程...

    php邮箱地址正则表达式实现与详解,邮箱地址正则表达式 本文章不但要讲述了关于正则达式而且还讲述了关于邮箱正则的构成用法详解,有需要了解的朋友可以参考一下,同时我们也提供了多种不同的邮箱验证实例. 正 ...

  2. php正则匹配js中变量_PHP正则表达式核心技术完全详解 第12节 [附加知识] 断言匹配...

    作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! 极客小俊@知乎,官方首发原创文章 博客: 极客小俊GeekerJun PHP正则中的断言 ...

  3. 服务器显示文件后缀名,获取文件后缀名

    获取文件后缀名 内容精选 换一换 文件类型可查询MIME参考手册.获取文件后缀名/** * @description 获取文件后缀名 * @param {String} fileName 文件全名,包 ...

  4. php获取文件后缀及名字,PHP实现获取文件后缀名的几种常用方法_PHP - strrpos

    ...ode>loadClass()方法中的 while (false !== $pos = strrpos($prefix, '\\')) 这行代码应该如何理解? 我觉得应该是: while ...

  5. 通过php获取文件后缀名怎么改,【转】PHP获取文件后缀名的几种方法

    在言会咸的博客转来的文章,还有三种,我以前用过第二种. //PHP获取文件后缀名的几种方法1: function get_file_type($filename){ $type = substr($f ...

  6. ASP.NET获取文件名,后缀名

    using System.IO; //引入命名空间 string path = "text.aspx";string pathName = Path.GetFileName(pat ...

  7. 获取文件后缀名(doc.excel)

    checkFileExt(file){ //file是文件对象const fileName = file.name;if(this.fileExts && this.fileExts. ...

  8. MySql 获取文件后缀名

    MySql 获取文件后缀名 SELECT RIGHT(filename, INSTR(REVERSE(filename),'.')) AS suffix FROM File WHERE fileId= ...

  9. File类如何获取文件后缀名

    File类如何获取文件后缀名 /*** 获取指定文件或文件夹的后缀名* @param fileName 文件名称* @return*/public static String getFileSuffi ...

  10. python获取系统时间函数_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

最新文章

  1. python精度丢失_JS大坑之19位数的Number型精度丢失问题详解_稚终_前端开发者
  2. 将本地jar包上传至Nexus
  3. 建造SAP Fiori部署
  4. BZOJ2938: [Poi2000]病毒(AC自动机)
  5. oracle审计实施
  6. JS遍历对象或者数组
  7. for循环多次调用cuda kernel函数_CUDA程序设计入门(二)——核函数
  8. Jmeter中主要管理器功用
  9. 洛谷 P1168 中位数 堆
  10. 学计算机专业选择设计为类需要艺考,想学设计必须参加艺考吗?设计学类专业,新高考选科怎么选?...
  11. 比较IE6的不同之处,与IE8 IE11 比较
  12. Swoole 结合TP5创建http服务
  13. SQL数据库基础知识复习
  14. sklearn垃圾邮件识别
  15. (成功解决)网页无法打开位于http://www.baidu.com/的网页无法加载,因为:net:ERR_NAME_NOT_RESOLVED
  16. 基于HBuilderX创建移动app项目并利用mui实现简单页面跳转
  17. 蕃茄工作法 - 让你轻松应对繁忙的工作
  18. 2016-12-28 迪米特法则+依赖倒转原则+里氏替换原则
  19. 漫画丨CTO不得不面对的9大困境
  20. Ubuntu安装mpich

热门文章

  1. idea2019 换背景
  2. nginx 启动 报错,80端口被占用问题,80端口无法杀掉问题
  3. 1138 Postorder Traversal
  4. 系统运维应届生面试题
  5. 【 FlutterUnit 食用指南】 开源篇
  6. 苹果自带相册打马赛克_科普 | 谨慎使用苹果自带的笔打码订单哦!
  7. 阿里云推出节省计划的每小时承诺消费怎么样?
  8. 《批处理:节省时间,减轻压力的20个小技巧》读书笔记(其实是一篇文章)
  9. 雷顿学院《百万大咖》校园行
  10. 病毒制作实践小记:运行关机、蓝屏炸弹、进程关闭、拓展名病毒