正則表達式筆記

正則表達式

正則的用處:python的網(wǎng)頁爬蟲中用的相當(dāng)多

寫正則表達式的整體思路:

首先把你要匹配的字符串粘過來,然后把里面共性的東西留著,空格換成\s,其他的可變字符串替換成各種匹配,然后那些不變的部分留著就行了。

pattern

元字符 說明
. 所有
\b begin,匹配單詞開始
^ 匹配一行的開始
$ 匹配一行的結(jié)束
\d digital,數(shù)字
\w word,匹配數(shù)字字母下劃線漢字,什么都能匹配
\s 匹配空格
\ 轉(zhuǎn)義符 .*\ 這些用

.匹配任意

字符集:[12] 中括號是字符集,匹配中括號中任意字符中的一個,這個表達式匹配1或者2,只匹配一個

[0-9]就相當(dāng)于\d

這個[]這里還要多寫一點,因為[]里面無限裝東西,而含義就是這個字符集相當(dāng)于里面裝的所有東西的其中一種,就有一個或的意思在里面。如果是兩個表達式來取或的話,就用|。

次數(shù):

*0或多個

+至少一個

數(shù)量詞[0-9]{4},匹配四位數(shù),大括號套起來就是次數(shù)

[0-9]{4,6}這個是貪婪匹配,比如要被匹配的字符串一共就六個數(shù)字,那這肯定就都匹配了,先從上限開始找

[0-9]{4,6}?這個等同于[0-9]{4},后面帶了一個問號之后,就不敢多要了,大括號成了廢話。

分組()

分組是括號,只要看見括號,而且這個括號前面還沒有轉(zhuǎn)義符的話,且括號后面跟的是大括號,比如

([1-9].){3}

這種小括號大括號連著用的結(jié)構(gòu),相當(dāng)方便斷句啊!

分組的別名

如果分組太多,不命名不好調(diào)用。問號尖括號連用,外面用小括號包著,只要看見這個小括號跑不了就是分組,例如:

(?<name1>([1-9].){3})

(?<name1> exp )

如果尖括號前面不帶問號的話,這個<>本身就不構(gòu)成語法。

分組這個東西,有了括號之后,就方便把這個組的取值拉出來,(?<> xxxx)這種表達式,把問號尖括號去掉之后,其他的仍然是一個正常的正則分組。

分組表達式取反
分組取反

問號冒號連用

(?: exp),(?:([1-9].){3})

這個取到的是上面這個表達式?jīng)]匹配到的部分,問號冒號連用沒法命名

貪婪匹配與懶惰匹配

貪婪比如 .*1,*就是貪婪,流星碎片,盡可能多的去匹配

懶惰 .*?1,?就是懶惰,盡可能少的去匹配

這兩個中,都是匹配xxxxx1,不過第一個要匹配到最后一個1,第二個到第一個1就停了。

(問號, 表示一點貪婪之后???)

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

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

  • python re模塊重要函數(shù)變量:1. compile() 根據(jù)正則表達式字符串,創(chuàng)建模式的對象。2. sear...
    野狗子嗷嗷嗷閱讀 344評論 0 1
  • JavaScript正則表達式筆記 概述 RegularExpression:安裝某種規(guī)則匹配指定內(nèi)容的單個字符串...
    hiccphp閱讀 410評論 0 4
  • 正則表達式用于匹配字符串的規(guī)則的,知識點不難,但是比較繁瑣,這篇文章把正則的基本常用點系統(tǒng)的整理了一下,方便自己以...
    長不大的帥小伙閱讀 365評論 0 1
  • ? 表示前面的字符可選。 +表示一個或多個。 *表示0個或多個。 [] 字符組或字符集 匹配方括號里限定的字符集。...
    oowl閱讀 708評論 0 0
  • 情緒管理:今天下了一天的雨,寶寶跟媽媽在家里玩,玩的很開心 親子陪伴:玩豆子,我把三樣不同顏色的豆子混在一起想讓寶...
    月月媽媽閱讀 176評論 0 0

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