這是一個準備不充分的課程,與網友交流時的嘗試錄制。。 網友普遍反映:太啰嗦
下載地址見: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 上面那個字符)
$_ 引用待查找文本全文
-------------------------------------------------------
----------------------------------------------------------
如有錯誤,請跟帖指正
如有覺得,某部分內容有必要補充,也請跟帖提出
下載地址見: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 上面那個字符)
$_ 引用待查找文本全文
-------------------------------------------------------
----------------------------------------------------------
如有錯誤,請跟帖指正
如有覺得,某部分內容有必要補充,也請跟帖提出