這是一個(gè)準(zhǔn)備不充分的課程,與網(wǎng)友交流時(shí)的嘗試錄制。。 網(wǎng)友普遍反映:
太啰嗦
下載地址見(jiàn):
http://www.iscripts.org/forum.php?mod=viewthread&tid=3
---------------------------正則的用處----------------------------
1. 查找文本
2. 分割文本
3. 替換文本
正則如果結(jié)合程序語(yǔ)言一起使用,還可以實(shí)現(xiàn)更多的功能效果
----------------------------字符集合的應(yīng)用-----------------------------------
[exp] 匹配[...]方括號(hào)中,所有列舉出來(lái)的字符元素
[a-z] 匹配從a開(kāi)始,到z結(jié)束的一個(gè)連續(xù)的字符區(qū)間, 包括 a, 包括z
[a-zA-Z0-9] 多個(gè)匹間也可以寫(xiě)在一起
需要轉(zhuǎn)義的字符: ],-,\,^
它們分別的轉(zhuǎn)義形式就是: \], \-, \\, \^
[^exp] 匹配除了 列舉出來(lái)的字符 以外的所有字符
[^] 排除掉了0個(gè)字符,也就是說(shuō)匹配任意字符
----------------------------幾個(gè)常用字符的轉(zhuǎn)義形式-----------------------------------
\t等價(jià)于制表符(tab)
\n等價(jià)于換行符
\r等價(jià)于回車符
\a響鈴, \f換頁(yè)符(在word文檔中,當(dāng)按下Ctrl+Enter的時(shí)候,就可以插入一個(gè)換頁(yè)符)
\xHH表示,一個(gè)Ascii字符,這個(gè)字符的ascii編碼用兩位十六進(jìn)制數(shù)字表示 (HH 是兩位十六進(jìn)制數(shù)字)
\uHHHH 表示,一個(gè)Unicode字符,這個(gè)字符的Unicode編碼用四位十六提制數(shù)字表示
----------------------------幾個(gè)常用字符的字符集合-----------------------------------
\s等價(jià)于[ \r\n\t], 匹配空白字符,能匹配空格,回車,換行,制表符
\S等價(jià)于[^ \r\n\t], 匹配非空白字符
\s與\S互補(bǔ),是互補(bǔ)集
[\s\S] 匹配任意字符
\d等價(jià)于[0-9] 匹配數(shù)字
\D等價(jià)于[^0-9]
\w等價(jià)于[a-zA-Z\d_]
\W等價(jià)于[^a-zA-Z\d_]
\w與\W互補(bǔ),是互補(bǔ)集 \w等價(jià)于[^\W]
[\w\W] 匹配任意字符
. 匹配:除了回車符和換行符以外的 其它所有字符
.等價(jià)于[^\r\n]
常用的字符集合:\d \D \s \S \w \W .
-----------------------------限定符----------------------------------
e{n} 限定符{n}: 限定左邊緊跟著的匹配規(guī)則e,e重復(fù)匹配N次 (n為數(shù)字)
e{3}等價(jià)于eee
ab{3}等價(jià)于abbb等價(jià)于a{1}b{3} 能夠匹配到 "abbb" , 1個(gè) a 緊跟著3個(gè) b
ab{3}≠ababab
e{m,n} (m,n 皆為數(shù)字) 限定符{m,n}: 限定左邊緊跟著的匹配規(guī)則e,e重復(fù)匹配 至少m次,至多n次
\d{6,9} 匹配連續(xù)的6到9個(gè)數(shù)字
e{m,} 限定符{m,}: 限定左邊緊跟著的匹配規(guī)則e, e重復(fù)匹配 m 次或者 m 次以上
e+ 限定符+: 限定左邊緊跟著的匹配規(guī)則e, e重復(fù)匹配 1 次或者 1 次以上
e+等價(jià)于e{1,}
e* 限定符*: 限定左邊緊跟著的匹配規(guī)則e, e重復(fù)匹配 0 次或者 0 次以上
e*等價(jià)于e{0,}
e? 限定符?: 限定左邊緊跟著的匹配規(guī)則e, e重復(fù)匹配 0 次或者 1 次
e?等價(jià)于e{0,1}
貪婪模式的限定符(6個(gè)): {n}, {m,n}, {m,}, +, *, ?
懶惰模式的限定符(6個(gè)): {n}?, {m,n}?, {m,}?, +?, *?, ??
-------------------------------------------------
| "或者"的意思
exp1|exp2|exp3 匹配exp1或者exp2或者exp3, 這里呢 exp1,exp2, exp3 均為獨(dú)立的“子表達(dá)式”
--------------------------------------------------
(Sub exp) 分組:把表達(dá)式的一部分放在(...)小括號(hào)中,這一部分稱之為子表達(dá)式, 子表達(dá)式的捕獲內(nèi)容,會(huì)被單獨(dú)存儲(chǔ)起來(lái),方便后續(xù)使用.
(....) 還常常用于 組織表達(dá)式的結(jié)構(gòu)
注意:分組的時(shí)候,不能破壞表達(dá)式的匹配規(guī)則
分組不能交叉
-------------------------------------------------------
^ 匹配零長(zhǎng)度字符串,只能匹配字符串開(kāi)始的位置
$ 匹配零長(zhǎng)度字符串,只能匹配字符串結(jié)束的位置
\b 匹配零長(zhǎng)度字符串,只能匹配單詞的邊界
---------------------------斷言----------------------------
(?=exp) 匹配零長(zhǎng)度字符串, 匹配一個(gè)縫隙, 要求這個(gè)縫隙右邊內(nèi)容 可以被 exp 匹配
(?!exp) 匹配零長(zhǎng)度字符串, 匹配一個(gè)縫隙, 要求這個(gè)縫隙右邊內(nèi)容不可以被 exp 匹配
---------------------------自引用----------------------------
\n 自引用。表示引用第 n 個(gè)捕獲組己經(jīng)捕獲到的內(nèi)容 (n 為數(shù)字)
---------------------------替換表達(dá)式----------------------------
$n 在替換表達(dá)式中, $n 用來(lái)引用第 n個(gè)捕獲組在本次匹配中所捕獲到的內(nèi)容。
$& 引用整個(gè)表達(dá)式在本次匹配中 所捕獲到的內(nèi)容
$' 引用表達(dá)式在本次匹配中 捕獲結(jié)果的后文
$` 引用表達(dá)式在本次匹配中 捕獲結(jié)果的前文 (` 是 tab 上面那個(gè)字符)
$_ 引用待查找文本全文
-------------------------------------------------------
----------------------------------------------------------
如有錯(cuò)誤,請(qǐng)跟帖指正
如有覺(jué)得,某部分內(nèi)容有必要補(bǔ)充,也請(qǐng)跟帖提出