首页 > 代码库 > 学习正则表达式

学习正则表达式

2016.12.22,星期四

    一、定义

     正则表达式: 用一些特殊的字符编写具有特殊规则的字符串

    注意:

  1, 本身也是一个字符串,具有语法规则

  2, 具有特殊意义,是处理字符串用的

  3, 本身不能直接产生作用,必须需要搭配php函数使用

    学习要点:

  1,有哪些特殊字符

  2,有什么语法规则

  3,有哪些php函数


    二、语法规则

      定界符:正则表达式必备,是正则表达式的"家"

      常用符号:/ # % | !

      例:

       “/正则表达式/”

       "#正则表达式#"

       "%正则表达式%"


     1.原子:组成正则表达式的主要部分

    1,普通字符:0-9 a-z A-Z 一个字符就代表了一个字符

  例子:

/1/  -- "1"

/a/  -- "a"

/olizi/  -- ‘olizi‘

     2,特殊字符: 需要加上转义字符来识别,本身具有特殊意义的符号,

    例:  "" 、‘‘、 \、 *、+、.、?、{、[、(、)、|、^、$

    

    3,非打印字符:特殊符号,在页面上产生了如换行、空格的实际影响但是    在页面上没有显示的特殊字符。

     附加:如果源代码里面出现了空格、回车、制表符等键盘上的特殊输    入,使用这些非打印字符来识别。

     

      换页 -- \f

  换行 -- \n

  回车 -- \r     

      空白字符(空格 制表 换页) -- \s

  非空白字符(除了空格 制表 换页) -- \S

  水平制表 -- \t

  垂直制表 -- \v

  控制符号 -- \cx  栗子:ctrl+x  ctrl+c

    4,通用字符:

        任意一个10进制数  ---  \d

   任意一个非10进制数的字符  ---  \D

    空白字符(空格 制表 换页) -- \s

    非空白字符(除了空格 制表 换页) -- \S

    找任意的一个字母、数字、下划线  --- \w

    找任意的一个非字母、非数字、非下划线  --- \W

    5,自定义字符:    

        1, 多个字符里面的任意一个  [多个字符]

[0-9] --- [0123456789]

[a-z] ---[abcdefghi..z]

[A-Z] ---[ABCDEFG..Z]

2, 除去多个字符里面的任意一个  [^多个字符]

3, 组团 (或者) :识别“抱团1” 或者 “抱团2”

  /抱团1|抱团2/

4, 连接符: -  表示从开始到结束的一个区间

  [0-9] == [0123456789]

    元字符:一些具有特殊意义的字符:       

        a,表示次数的字符:

预定义次数:

0次或者1次:?

/a?/  aabc bc

1次或者多次:+

0次,1次或者多次:*

    自定义次数:{至少, 最多}

    例子:

    /[abcde]{3}/ == [abcde][abcde][abcde]

    b,表示开头和结尾开头

以..开头   /^字符/  /\A字符/

以..结尾   /字符$/  /字符\Z/

c, 边界符

边界内必须 \b  

"/\bmy\b/":my -- "my name is"  

边界外必须 \B

"/\Bis/":this -- "this is my name " 

d, 其它

任意一个字符 : .

例子: abc acc adc afc a.c

"/a.c/" 

      E,模式修正符:位置比较特殊位于定界符外面

    a)忽略大小写:i

例子: "/a/i" -- a,A

b)忽略空白:x

例子:"/ab/x" --"a b"


学习正则表达式