Python正規表示式初識(五)

2022-02-08 09:55:55 字數 1755 閱讀 9498

正規表示式的內容很豐富,今天小編繼續給大家分享python正規表示式的基礎知識。今天要給大家的講的特殊字元是豎線「|」。豎線「|」實質上是乙個或的關係。

1、直接上**演示,比方說我們需要匹配乙個字串「dcpeng123」,匹配模式為 「(dcpeng|dcpeng123)」,記得匹配模式中要有括號,否則後面的group方法會報錯。

如上圖所示,匹配模式「(dcpeng|dcpeng123)」的意思是只要匹配「dcpeng」或者「dcpeng123」中的任意乙個,就說明提取成功。「|」實質上是乙個「或」的關係,匹配的結果為「dcpeng」可以滿足匹配條件,匹配的結果為「dcpeng123」也可以滿足匹配條件。所以在這裡,正規表示式首先匹配了字串「dcpeng」,所以列印出來的結果就是「dcpeng」。

2、當我們把匹配模式中兩個字串的順序調整一下,如下圖所示。

根據第一步的分析步驟,其匹配結果為「dcpeng123」,在此就不再贅述了。

3、如果我們將原始字串做一下更改,更改為「dcpeng」,而保持匹配模式不變,如下圖所示。

此時的匹配結果為「dcpeng」。原因是匹配模式首先是「dcpeng123」,與原始字串匹配不上,之後通過特殊字元「|」再定位到「dcpeng」,發現可以與原始字串匹配上,所以匹配成功,輸出匹配結果。

4、如果我們只是想匹配字串中的一部分,那應該如何做呢?如下圖所示,只需要將匹配模式用括號括起來就可以了,而括號外面的部分保持與原始字串一致即可。

此時可以看到輸出的結果為「dcpeng」。這裡容易犯錯,很多小夥伴很可能以為結果是「dcpeng123」,只需要記住我們匹配的內容只是在括號中,外邊的世界與我們無關。

同樣的,如果我們將原始字串改為「dccpeng123」,儲存匹配模式不變,此時的匹配結果為「dccpeng」,如下圖所示。

5、如果真想匹配到外邊的結果,就應該再加一層括號,將外邊的內容與括進來,入下圖所示。當程式執行之後,我們得到的匹配結果是「dccpeng123」。

當程式執行之後,實際上是以最外層的這個括號為順序的,然後依次向內進行匹配。當group方法中取第乙個括號的內容時,匹配到的結果是最外層括號中的內容,所以是「dccpeng123」。可以看到「123」也被提取出來了。

同理,當group方法中取第二個括號的內容時,匹配到的結果是最二層括號中的內容,所以是「dccpeng」,如下圖所示。

此時可以看到「123」並沒有被提取出來,因為此時匹配的內容是「(dcpeng|dccpeng)」。

關於在括號中提取子字串的用法在網路爬蟲中非常常見,也是python正規表示式的重點學習內容,需要重點掌握。

正規表示式 1 初識正規表示式

簡單地說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。運維工作中,會有大量訪問日誌,錯誤日誌,大資料。如何能夠快速的過濾出我們需要的內容,這就需要正規表示式。awk,sed,grep egrep 三劍客要想能工作的更...

正規表示式初識

用來指定乙個字元集合 字元直接是 或 的關係,不是乙個特定的字串,跟 abc 不同 abc a z 在字符集中,元字元 不起作用 abc abc 元字元 在字串尾不起作用 abc 就是普通字元。元字元在字符集首表示匹配補集,abc 就是匹配除了a,b,c以外的字元。匹配行首,位於字串首。制定規則re...

正規表示式初識

正規表示式 為轉義如 表示.郵箱匹配 grep e 0 9a za z 0 9a za z a za z a.txt 查詢郵箱 a z 所有小寫字母 a z 所有大寫字母 0 9 所有數字 0 9 所有非數字 表達取反 0 9 a z 0個或多個小寫字母 a z 至少出現一次小寫字母 a z 出現0...