正则表达式

1.中括号:

  可用来表达要匹配的一定范围内的字符或字符列表。

  1. [0~9] 匹配任何从0到9的十进制数字
  2. [a~z] 匹配任何从小写a到z的字符
  3. [A~z] 匹配任何从大写A到Z的字符
  4. [A~Za~z] 匹配任何从大写A到小写z的字符

2.量词

  1. p+: 匹配任何至少包含一个p的字符串
  2. p*: 匹配任何包含零个或多个p的字符串
  3. p?: 匹配任何包含零个或一个p的字符串
  4. p{2}: 匹配任何包含两个连续p的字符串
  5. p{2,3}: 匹配任何包含两个或三个连续p的字符串
  6. p{2,}: 匹配任何至少包含两个连续p的字符串
  7. p$: 匹配任何以p结尾的字符串
  8. ^p 匹配任何以p开头的字符串
  9. [^a-zA-Z]:匹配任何不包含a-z和从A-Z字符的字符串
  10. p.p 匹配任何包含字符p、接下来是任何字符、再接下来又是p的字符串
  11. ^.{2}$: 匹配任何只包含两个字符的字符串
  12. <b>(.*)</b> 匹配任何被<b>和</b>包围的字符串
  13. p(hp)* 匹配任何包含一个p,p后面是零个或多个hp的字符串
  14. ([$](0-9)+) 匹配$42、$560、$3

3. 预定义字符范围(字符类)

  1. [:alpha:] : 小写和大写字母字符。也可以指定为[A-Za-z]
  2. [:alnum:] 小写和大写字母字符以及数字。也可以指定为[A-Za-z0-9]
  3. [:cntrl:] 控制字符,如制表符、退格符或反斜线
  4. [:digit:] 0-9的数字。也可以指定[0-9]
  5. [:graph:] ASCII 33-126范围内的可打印字符
  6. [:lower:] 小写字母字符,也可以指定为[a-z]
  7. [:punct:] 标点符号字符,包括:~、!@#$%^&*()-_+={}[]:';<>,.?/
  8. [:upper:] 大写字母字符。也可以指定为[A-Z]
  9. [:space:] 空白字符,包括空格、水平制表符、垂直制表符、换行、换页、或回车
  10. [:xdigit:] 十六进制字符,也可以指定为[a-fA-F0-9]

一、 概述

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

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

    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    匹配数字
        匹配单词的开始或结束
    ^    匹配字符串的开始
    $    匹配字符串的结束


    2.常用限定符
    代码/语法    说明
    *    重复零次或更多次
    +    重复一次或更多次
    ?    重复零次或一次
    {n}    重复n次
    {n,}    重复n次或更多次
    {n,m}    重复n到m次


    3.常用反义词
    代码/语法    说明
    W    匹配任意不是字母,数字,下划线,汉字的字符
    S    匹配任意不是空白符的字符
    D    匹配任意非数字的字符
    B    匹配不是单词开头或结束的位置
    [^x]    匹配除了x以外的任意字符
    [^aeiou]    匹配除了aeiou这几个字母以外的任意字符

原文地址:https://www.cnblogs.com/cexm/p/6113570.html