Scripts 学盟

标题: [视频]正则表达式基础入门 [打印本页]

作者: Alvin    时间: 2011-3-22 10:25:47     标题: [视频]正则表达式基础入门

自己录制的视频,交流交流哈

字符集合
第一节:http://u.115.com/file/e6ynf48r
常用集合
第二节:http://u.115.com/file/aqzg9cyj
限定符
第三节:http://u.115.com/file/aqzg98tc
分组
第四节:http://u.115.com/file/clgh4ivd
断言
第五节:http://u.115.com/file/bhz7las1
自引用&替换表达式
第六节:http://u.115.com/file/clgh4sor


---------------------------正则的用处----------------------------

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 上面那个字符)
$_ 引用待查找文本全文

-------------------------------------------------------

----------------------------------------------------------
如有错误,请跟帖指正
如有觉得,某部分内容有必要补充,也请跟帖提出
作者: 雪儿    时间: 2011-3-24 16:19:16

就这地方眼熟。。
作者: Alvin    时间: 2011-3-25 00:55:37

花花 {:3_46:}
作者: Yisin    时间: 2011-4-21 00:13:12

我下载看了 说的挺好的呢
作者: 可可    时间: 2011-6-2 11:58:43



这是什么
作者: 混混@普宁.中国    时间: 2011-6-5 22:19:12

可可 发表于 2011-6-2 11:58
这是什么



下载瞧瞧,就知道了
作者: 依依    时间: 2011-9-8 11:50:18

能不能在随便浏览帖子的时候 直接点下一篇或者上一篇 不用返回去
作者: 混混@普宁.中国    时间: 2011-9-8 14:21:40

依依 发表于 2011-9-8 11:50
能不能在随便浏览帖子的时候 直接点下一篇或者上一篇 不用返回去

帖子标题栏右侧

有两个箭头

可以链接到前/后一篇帖子




欢迎光临 Scripts 学盟 (http://www.iscripts.org/) Powered by Discuz! X2