标签:
PHP 中有两套正则库;PCRE和POSIX;PHP5.3以后不在提倡用POSIX 然而POSIX字眼却也是经常看见的,比如在一些Linux工具书中;
正则的组成:一般而言包括,分隔符,表达式,修饰符;
元字符:表达式中具有特殊记忆的字符;就像我们Java中的class这样的字眼;
. 匹配出换行符外任意字符
\w 匹配字母或者数字或者下划线或者汉字
\s 匹配任意空白字符
\d 匹配数字
\b 匹配单词的开始或者结束
^ 匹配字符串的开始
$ 匹配字符串的结束
- 表示范围 比如 [a-z]
[] 表示括号中任意一个字符 分组符
* + ? 量词 * 表示重复0次或者更多次 +表示重复一次或者更多次 ?表示重复0次或者1次 另外{} {7}表示重复7次 {7,}重复7次以上 {7,10}表示重复6次以上11次以下
一些表达式帮助理解
\bc\w*\b 表示开头的字符 不如canada candu c_ds_ds
\d+ 表示可以正负无穷的数子
\b\w{8}\b 表示长度为8的单词
0\d\d - \d\d\d\d\d\d\d 表示类似 030 - 0392393 这样 等价于 0\d{2} - \d{7}
转义:去掉齐被赋予的含义,看成普通字符;用\ 比如* \* 另外\Q \E 之间的任意元字符都会当成普通字符看待
另外字符组中所有表示非单个的元字符都会看成普通字符,因为字符组匹配单个;
反义:取反;
\w 反义为\W \d \D \s \S \b \B [^x] 处x 意外任意字符
分支:()分支就是在分组的单个层面上扩展为了多个;例如(a|vn|cnm)at 匹配aat vmat cnmat
标签:
原文地址:http://www.cnblogs.com/bin-pureLife/p/4706035.html