Heim >Backend-Entwicklung >PHP-Tutorial >php正则验证email邮箱及抽取内容中email的例子

php正则验证email邮箱及抽取内容中email的例子

WBOY
WBOYOriginal
2016-07-25 08:59:071148Durchsuche
  1. 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)){
  2. echo “Your email address is correct!”;}
  3. else{
  4. echo “Please try again!”;
  5. }
  6. ?>
复制代码

下面介绍下,用php正则匹配域名的方法。

我们知道,国际域名格式如下: 域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达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}为{起始字数,结束字数}

2,抽取字符串中的email:

  1. function getEmail($str) {
  2. $pattern = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";
  3. preg_match_all($pattern,$str,$emailArr);
  4. return $emailArr[0];
  5. }
  6. $emailstr = "9999@qq.com.cn俺不是米vi地方就开iid邮件列表:fuyongjie@163.com 和hh@qq.com;.;;,fuyongjie.100@yahoo.com,fu-1999@sina.com";
  7. $emailArr = getEmail($emailstr);
  8. echo "
    ";
  9. print_r($emailArr);
  10. echo "";
  11. ?>
复制代码

输出结果:

  1. Array
  2. (
  3. [0] => 9999@qq.com.cn
  4. [1] => fuyongjie@163.com
  5. [2] => hh@qq.com
  6. [3] => fuyongjie.100@yahoo.com
  7. [4] => fu-1999@sina.com
  8. )
复制代码

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

就介绍这些吧,希望对大家学习php正则有一定的帮助。 程序员之家,祝大家学习进步。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn