这是一个准备不充分的课程,与网友交流时的尝试录制。。 网友普遍反映:
太啰嗦
下载地址见:
http://www.iscripts.org/forum.php?mod=viewthread&tid=3
---------------------------正则的用处----------------------------
1. 查找文本
2. 分割文本
3. 替换文本
正则如果结合程序语言一起使用,还可以实现更多的功能效果
----------------------------字符集合的应用-----------------------------------
[exp] 匹配[...]方括号中,所有列举出来的字符元素
[a-z] 匹配从a开始,到z结束的一个连续的字符区间, 包括 a, 包括z
[a-zA-Z0-9] 多个匹间也可以写在一起
需要转义的字符: ],-,\,^
它们分别的转义形式就是: \], \-, \\, \^
[^exp] 匹配除了 列举出来的字符 以外的所有字符
[^] 排除掉了0个字符,也就是说匹配任意字符
----------------------------几个常用字符的转义形式-----------------------------------
\t等价于制表符(tab)
\n等价于换行符
\r等价于回车符
\a响铃, \f换页符(在word文档中,当按下Ctrl+Enter的时候,就可以插入一个换页符)
\xHH表示,一个Ascii字符,这个字符的ascii编码用两位十六进制数字表示 (HH 是两位十六进制数字)
\uHHHH 表示,一个Unicode字符,这个字符的Unicode编码用四位十六提制数字表示
----------------------------几个常用字符的字符集合-----------------------------------
\s等价于[ \r\n\t], 匹配空白字符,能匹配空格,回车,换行,制表符
\S等价于[^ \r\n\t], 匹配非空白字符
\s与\S互补,是互补集
[\s\S] 匹配任意字符
\d等价于[0-9] 匹配数字
\D等价于[^0-9]
\w等价于[a-zA-Z\d_]
\W等价于[^a-zA-Z\d_]
\w与\W互补,是互补集 \w等价于[^\W]
[\w\W] 匹配任意字符
. 匹配:除了回车符和换行符以外的 其它所有字符
.等价于[^\r\n]
常用的字符集合:\d \D \s \S \w \W .
-----------------------------限定符----------------------------------
e{n} 限定符{n}: 限定左边紧跟着的匹配规则e,e重复匹配N次 (n为数字)
e{3}等价于eee
ab{3}等价于abbb等价于a{1}b{3} 能够匹配到 "abbb" , 1个 a 紧跟着3个 b
ab{3}≠ababab
e{m,n} (m,n 皆为数字) 限定符{m,n}: 限定左边紧跟着的匹配规则e,e重复匹配 至少m次,至多n次
\d{6,9} 匹配连续的6到9个数字
e{m,} 限定符{m,}: 限定左边紧跟着的匹配规则e, e重复匹配 m 次或者 m 次以上
e+ 限定符+: 限定左边紧跟着的匹配规则e, e重复匹配 1 次或者 1 次以上
e+等价于e{1,}
e* 限定符*: 限定左边紧跟着的匹配规则e, e重复匹配 0 次或者 0 次以上
e*等价于e{0,}
e? 限定符?: 限定左边紧跟着的匹配规则e, e重复匹配 0 次或者 1 次
e?等价于e{0,1}
贪婪模式的限定符(6个): {n}, {m,n}, {m,}, +, *, ?
懒惰模式的限定符(6个): {n}?, {m,n}?, {m,}?, +?, *?, ??
-------------------------------------------------
| "或者"的意思
exp1|exp2|exp3 匹配exp1或者exp2或者exp3, 这里呢 exp1,exp2, exp3 均为独立的“子表达式”
--------------------------------------------------
(Sub exp) 分组:把表达式的一部分放在(...)小括号中,这一部分称之为子表达式, 子表达式的捕获内容,会被单独存储起来,方便后续使用.
(....) 还常常用于 组织表达式的结构
注意:分组的时候,不能破坏表达式的匹配规则
分组不能交叉
-------------------------------------------------------
^ 匹配零长度字符串,只能匹配字符串开始的位置
$ 匹配零长度字符串,只能匹配字符串结束的位置
\b 匹配零长度字符串,只能匹配单词的边界
---------------------------断言----------------------------
(?=exp) 匹配零长度字符串, 匹配一个缝隙, 要求这个缝隙右边内容 可以被 exp 匹配
(?!exp) 匹配零长度字符串, 匹配一个缝隙, 要求这个缝隙右边内容不可以被 exp 匹配
---------------------------自引用----------------------------
\n 自引用。表示引用第 n 个捕获组己经捕获到的内容 (n 为数字)
---------------------------替换表达式----------------------------
$n 在替换表达式中, $n 用来引用第 n个捕获组在本次匹配中所捕获到的内容。
$& 引用整个表达式在本次匹配中 所捕获到的内容
$' 引用表达式在本次匹配中 捕获结果的后文
$` 引用表达式在本次匹配中 捕获结果的前文 (` 是 tab 上面那个字符)
$_ 引用待查找文本全文
-------------------------------------------------------
----------------------------------------------------------
如有错误,请跟帖指正
如有觉得,某部分内容有必要补充,也请跟帖提出