正則表達(dá)式

寫在前面:最近在弄爬取數(shù)據(jù)的html解析,使用正則的時(shí)候遇到一些問題,在這里總結(jié)一下,希望對(duì)和我一樣有困惑的人有幫助。
正則表達(dá)式 - 語法

1.以 (?) 開頭的組

純的非捕獲組,它不捕獲文本,也不針對(duì)組合計(jì)進(jìn)行計(jì)數(shù)。就是說,如果小括號(hào)中以?號(hào)開頭,那么這個(gè)分組就不會(huì)捕獲文本,當(dāng)然也不會(huì)有組的編號(hào)。

(1) 語法

字符 描述
(?:pattern) 匹配pattern但不獲取匹配結(jié)果,也就是說這是一個(gè)非獲取匹配,不進(jìn)行存儲(chǔ)供以后使用。這在使用或字符“(|)”來組合一個(gè)模式的各個(gè)部分是很有用。例如“industr(?:y |ies)”就是一個(gè)比“industry |industries”更簡(jiǎn)略的表達(dá)式。
(?=pattern) 正向肯定預(yù)查,在任何匹配pattern的字符串開始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如,“Windows(?=95 |98 |NT |2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。預(yù)查不消耗字符,也就是說,在一個(gè)匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開始。
(?!pattern) 正向否定預(yù)查,在任何不匹配pattern的字符串開始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如“Windows(?!95 |98 |NT |2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
(?<=pattern) 反向肯定預(yù)查,與正向肯定預(yù)查類似,只是方向相反。例如,“(?<=95 |98 |NT |2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?<!pattern) 反向否定預(yù)查,與正向否定預(yù)查類似,只是方向相反。例如“(?<!95 |8 |NT |2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。

2.需要轉(zhuǎn)義的特殊字符

字符 描述
[^xyz] 負(fù)值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
\s 匹配任何不可見字符,包括空格、制表符、換頁符等等。等價(jià)于[ \f\n\r\t\v]。

未完待續(xù)。。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容