在爬取網頁內容時,需要通過某種方法將資訊過濾出來,正規表示式(regular expression)即為一種常見的手段。相比於其他的方法(css、xpath等)略微繁瑣一些,但是正規表示式十分強大,適應性強,匹配速度快。
正規表示式(regular expression)描述了一種字串匹配的模式(pattern),可以用來檢查乙個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
示例:
假如我們想要取出下例str字串中的數字,我們可以這樣做:首先需要匯入python的正規表示式re包。
import re
str = "hello1995lemon"
pattter= re.compile('.*?([0-9].*?)')
result = re.findall(patt1, str)
print (result)
上面patter中表示式中,等號右邊括號的單引號裡即為匹配數字的正規表示式。
正規表示式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為」元字元」)組成的文字模式。模式描述在搜尋文字時要匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。
構造正規表示式需要我們將正規表示式所包含的各種元素按照我們的需求組合起來成為乙個完整的表示式,從而完成匹配特定文字。它可以是單個字元、多個字元合集、自付範圍或者所有元素的任意組合。
普通字元,顧名思義,沒有其他的特殊含義,它們包括所有大寫字母a-z、小寫字母a-z、所有數字0-9、標點符號和一些其他符號。
非列印字元也可以是正規表示式的組成部分。下表列出了表示非列印字元的轉義序列:
相對於普通字元,特殊字元通常有其特定的含義,如果我們想要匹配這些特殊字元,需要在這些特殊字元前面加乙個』\』,將其轉義,從而完成匹配。這些字元包括:
限定符在正規表示式中起到限定匹配次數的作用。通常來指定正規表示式的某個指定元素必須要出現多少次才能滿足匹配。限定符包含以下6種:
定位符用來描述字串或者單詞的邊界。正規表示式的定位符有:
注意:定位符與限定符不能一起使用,由於在緊靠換行或者字邊界的前面或後面不能有乙個以上位置,因此不允許諸如 ^* 之類的表示式。^,$定位符分別對應使用在正規表示式的開頭和結尾處。
常見的正規表示式元素就是這些了,東西雖然不是很多,但是想要寫出一組簡潔高效的正規表示式,需要對這些概念語法熟稔於心,勤加練習才行。知也無涯,要隨時保持學習。
正規表示式 1 正規表示式基礎
1.正規表示式基礎 正規表示式描述了一種字串匹配的模式,即可以使使用者通過一系列普通字元或特殊字元構建能夠明確描述文字字串的匹配模式,可以用來檢查某個字串是否含有某種子字串,將匹配的子字串做替換或者從某個字串中取出符合某個條件的子字串等。1.1 正規表示式的基本結構 乙個正規表示式就是由普通字元 如...
正規表示式基礎
限定符 d 匹配非負整數 正整數 0 0 9 1 9 0 9 匹配正整數 d 0 匹配非正整數 負整數 0 0 9 1 9 0 9 匹配負整數 d 匹配整數 d d 匹配非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 匹配正浮點數 d...
正規表示式基礎
元字元 描述 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾,但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如正規...