【夯实PHP系列】PHP正则表达式

一、 概述

1. 正则表达式的测试地址: http://tool.chinaz.com/regex/

二、具体的常用正则表达式

1. 邮箱正则表达式:

  1)\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}

  2)\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

  3)解析:

    -- "\" 叫"跳脱字符"。用于转义一些特殊符号,如".","/"

    -- "\w" 等价于 [a-zA-Z0-9_] 。也匹配汉字

    -- "+" 1到多次还可以写成{1,}

    -- 小括号 来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了, ([-+.]\w+)*

    -- [-+.] 方括号扩起来的部分就是字符域

    -- . 匹配除换行符以外的任意字符

  4)代码示例

  

<?php
  $email = 'sishuinianhua@qq.com';
  $preg = '/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/';
  $res = preg_match($preg, $email, $preg_res);
  var_dump(111,$res,$preg_res);exit;

  -- preg_match() : http://php.net/manual/zh/function.preg-match.php

2. 网址表达式:

  1) [a-zA-z]+://[^\s]+

  2)解析:

    -- ^

      > 放在字符域(如:[^\w])中表示否定(不包括的意思)——“反向选择”

   > 放在表达式之前,表示以当前这个字符开始。(/^n/i,表示以n开头)。

    -- \s 匹配任意的空白符

三、 附录

1. 常用元字符

代码 说明

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束

2.常用限定符

代码/语法 说明

* 重复零次或更多次

+ 重复一次或更多次

? 重复零次或一次

{n} 重复n次

{n,} 重复n次或更多次

{n,m} 重复n到m次

3.常用反义词

代码/语法 说明

\W 匹配任意不是字母,数字,下划线,汉字的字符

\S 匹配任意不是空白符的字符

\D 匹配任意非数字的字符

\B 匹配不是单词开头或结束的位置

[^x] 匹配除了x以外的任意字符

[^aeiou] 匹配除了aeiou这几个字母以外的任意字符