白驹过隙,这篇文章距今已有一年以上的历史。技术发展日新月异,文中的观点或代码很可能过时或失效,请自行甄别:)

一、特殊字符

1.^ 在字符串开头匹配

2.$ 在字符串末尾匹配

  1. . 匹配除换行符(\n)外的字符
  2. | 选择分支的开始

5.(子模式的开始

  1. )子模式的结束
  2. × 重复0次或以上
    • 重复一次或以上
  3. { 最小/最大量记号的开始
  4. } 最小/最大量记号的结束
  5. ? 标记一个子模式为可选的、

二、用在方括号里面的特殊字符

  1. \ 转义字符
  2. ^ 非,仅用在开始位置
    • 用于指明字符范围

三、POXIS风格的正则表达式的字符类

[[:alnum:]] 文本数字字符

[[:alpha:]] 字母字符

[[:lower:]] 小写字母

[[:upper:]] 大写字母

[[:digit:]] 小数

[[:xdigit:]] 十六进制数字

[[:punct:]] 标点符号

[[:blank:]] 制表符和空格

[[:space:]] 空白字符

[[:cntrl:]]控制字符

[[:print:]]所有可以打印的字符

[[:graph:]]除空格外所有可以打印字符

四、子表达式

圆括号(如(very)×large可以匹配“large”,“very large“,”very very large“)

五、转义字符

\n 匹配一个换行符(同\x0a和\cJ)

\r 匹配一个回车符(同\x0d和\cM)

\s 匹配任何空白字符,包括空格,制表符,换页符等,(同\f\n\r\t\v)

\S 匹配任何非空白字符(同1

\t 匹配一个制表符(同\x09和\cI)

\v 匹配一个垂直制表符(同\x0b和\cK)

\f 匹配一个换页符(同\x0c和\cL)

\cx 匹配由x指明的控制字符。例如,\cM匹配control+M或回车键。x的值必须为a-z或者A-Z之一。否则将c堪称字符'c'

六、反义字符

\W 匹配任意不是字符、数字、下划线或者汉子的字符

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

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

\B 匹配不是单词开头或结束的位置,即一个词语的边界,位于\w和\W之间

七、正则表达式函数:

1.ereg() 字符串的正则匹配函数

2.eregi() 不区分大小写的正则匹配函数

3.ereg_replace() 正则表达式字符替换

4.eregi_replace () 不区分大小写的正则表达式替换

5.split() 用正则表达式将字符串分割到数组中

6.spliti() 用正则表达式不区分大小写将字符串分割到数组中


  1. \f\n\r\t\v