1. 正則表達(dá)式語法
1.1 字符與字符類
1 特殊字符:/.^$?+*{}[]()|
以上特殊字符要想使用字面值,必須使用/進(jìn)行轉(zhuǎn)義
2 字符類
1. 包含在[]中的一個或者多個字符被稱為字符類,字符類在匹配時如果沒有指定量詞則只會匹配其中的一個。
2. 字符類內(nèi)可以指定范圍,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之間的任何一個字符
3. 左方括號后跟隨一個^,表示否定一個字符類,比如[^0-9]表示可以匹配一個任意非數(shù)字的字符。
4. 字符類內(nèi)部,除了/之外,其他特殊字符不再具備特殊意義,都表示字面值。^放在第一個位置表示否定,放在其他位置表示^本身,-放在中間表示范圍,放在字符類中的第一個字符,則表示-本身。
5. 字符類內(nèi)部可以使用速記法,比如/d /s /w
3 速記法
. 可以匹配除換行符之外的任何字符,如果有re.DOTALL標(biāo)志,則匹配任意字符包括換行
/d 匹配一個Unicode數(shù)字,如果帶re.ASCII,則匹配0-9
/D 匹配Unicode非數(shù)字
/s 匹配Unicode空白,如果帶有re.ASCII,則匹配/t/n/r/f/v中的一個
/S 匹配Unicode非空白
/w 匹配Unicode單詞字符,如果帶有re.ascii,則匹配[a-zA-Z0-9_]中的一個
/W 匹配Unicode非單子字符
1.2 量詞
1. ? 匹配前面的字符0次或1次
2. * 匹配前面的字符0次或多次
3. + 匹配前面的字符1次或者多次
4. {m} 匹配前面表達(dá)式m次
5. {m,} 匹配前面表達(dá)式至少m次
6. {,n} 匹配前面的正則表達(dá)式最多n次
7. {m,n} 匹配前面的正則表達(dá)式至少m次,最多n次
注意點(diǎn):
以上量詞都是貪婪模式,會盡可能多的匹配,如果要改為非貪婪模式,通過在量詞后面跟隨一個?來實(shí)現(xiàn)
1.3 組與捕獲
1 ()的作用:
1. 捕獲()中正則表達(dá)式的內(nèi)容以備進(jìn)一步利用處理,可以通過在左括號后面跟隨?:來關(guān)閉這個括號的捕獲功能
2. 將正則表達(dá)式的一部分內(nèi)容進(jìn)行組合,以便使用量詞或者|
2 反響引用前面()內(nèi)捕獲的內(nèi)容:
1. 通過組號反向引用
每一個沒有使用?:的小括號都會分配一個組好,從1開始,從左到右遞增,可以通過/i引用前面()內(nèi)表達(dá)式捕獲的內(nèi)容
新聞熱點(diǎn)
疑難解答
圖片精選