python 正規表示式

2021-08-31 03:22:25 字數 1596 閱讀 5322

python支援的正規表示式的常用符號

說明:(1) 「.」字元為匹配配仟意單個字元。例如,a.b可以的匹配結果為abc,aic、a&c等,但不包括換行符。

2) 「\」字元為轉義字元,可以把字元改變為原來的意思,聽上去不是很好理解。

例如:』.『字元是匹配任意的單個字元,但有時不需要這個功能,只想讓它代表乙個點,這時可以使用』.『就能匹配為』 . 』 了。

3 […]字符集,相當於在中括號中任選乙個。例如a[bcd],匹配的結果為ab、ac、ad。

**預定義字符集 **

正規表示式的預定義字符集易於理解,在爬蟲實戰中,常常會匹配數字而過濾掉文字部分的資訊。例如』字數 3450』,只需要數字資訊,可以通過』\d+』 來匹配資料,』+'為數量詞,匹配前乙個字元1或無限次,這樣就可以匹配到所有的數字。

數量詞

說明:(1)" * " 數量詞匹配前乙個字元0或無限次。例如ab*c匹配ac、abc、abbc、abbbc等。

(2)『+』 與『 * 』類似,只是匹配前乙個字元一次。例如,ab+c匹配abc、abbc和abbbc等

(3)『?』數量詞匹配前乙個字元0或1次。例如,ab?c 匹配 ac和abc。

(4)『m』數量詞匹配前乙個字元m次。例如,abc 匹配abbbc。

(5)『』數量詞匹配前乙個字元m至n次。例如,abc匹配 abc、abbc和abbbc。

邊界匹配

說明:(1) 『 ^ 』 匹配字串的開頭。例如,^abc匹配abc開頭的字串。

(2)』 $ 』 匹配字串的結尾。例如,abc$匹配abc結尾的字串。

(3)』 \a 『匹配字串的結尾。例如,\aabc。

(4)』 \z 』 匹配字串的結尾。例如,abc\z。

邊界匹配在爬蟲實戰中的使用較少,因為爬蟲提取的大部分為標籤中的資料,例如186好笑提取數字數字資訊,邊界匹配在這裡沒有任何作用。

最後介紹爬蟲實戰中最常用的(.?),"()"表示括號的內容作為返回的結果。「 .? 」是非貪心演算法,匹配任意字元。例如,字串『xxlxxjshdxxlovexxsffaxxpythonxx』,可以通過』xx(.*? )xx』匹配符合這種規則的字串,**如下:

import re

a = 'xxlxxjshdxxlovexxsffaxxpythonxx'

info = re.findall('xx(.*?)xx',a)

print(info)

執行結果如下:

[『l』, 『love』, 『python』]

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...