正则表达式主要作用:分割、匹配、查找、替换
正则表达式中包括的元素:
1.原子(普通字符:a-z A-Z 0-9 、原子表、转义字符)
2.元字符(有特殊功能的字符)
3.修正模式符(系统内置部分字符,例如:i、m、s、u)
原子
1. a-z A-Z 0-9 //最常见的字符
2. (abc) //用圆括号包含起来的单元符号,匹配圆括号整体
3.[abc] //用方括号包含的原子表,匹配方括号中单个字符
4.[^abc] //用方括号包含的原子表,匹配除方括号中字符外的任意字符
5.转义字符:
\d //包含所有数字 [0-9]
\D //除所有数字外 [^0-9]
\w //包含所有英文字符 [a-z A-Z _ 0-9]
\W //除所有定义字符外 [^a-z A-Z _ 0-9]
\s //匹配一个不可见原子 例如:[\f\n\r\t\v]
\S //匹配一个可见原子 例如:[^\f\n\r\t\v]
元字符:
* //匹配前一个内容的0次或者多次
. //匹配内容的0次或者多次,但不包含换行(\n)
+ //匹配前一个内容的1次或者多次
? //匹配前一个内容的0次或者1次
| //选择匹配类似php中的|(因为这个运算符号是弱类型,导致前面最为整体匹配),多个选择一个匹配
^ //匹配字符串首部内容
$ //匹配字符串尾部内容
\b //匹配单词边界,边界可以是空格或者特殊符号
\B //匹配单词边界以外内容
{m} //匹配前一个内容重复次数为m次
{m,} //匹配前一个内容重复次数至少为m次
{m,n} //匹配前一个内容重复次数从m到n此
修正模式符:
是正则表达式的一个增强和补充功能,使用在正则之外,格式/正则/修正模式符
i //正则内容在匹配时不区分大小写(默认区分)
m //在匹配首内容(^)或者尾部(&)时,采用多行识别匹配,注意:^与$对象是段落的首与尾,而模式修正符m的对象是每一行的句首与句尾
s //将转义回车(\n)取消,为了单行匹配,如 .匹配时,(.*)
x //忽略正则中的空白
A //强制从头开始匹配
D //强制$匹配尾部无任何内容(\n)
U //禁止贪婪匹配,只跟踪到最近的一个匹配符并结束,常用在采集程序上的正则表达式
技巧:
1.圆括号使用技巧:$mode = '/(a)(b)\\1\\2'; \\1表示(a),\\2表示(b),在处理正则时,圆括号被写入内存中,而\\是读取圆括号在内存中存放位置,其位置以1开始
2. .*表示匹配所有字符,除换行符(\n)外
3. \w+表示匹配多个随机英文字符
正则调试工具使用:regexpal (http://regexpal.isbadguy.com/)