re模組是什麼
基礎方法有哪些
在python中使用正規表示式的特點和問題
使用正規表示式的技巧
爬蟲的例子
findall ,返回列表 找所有的匹配項
search 匹配就 返回乙個變數,通過group取匹配到的第乙個值,不匹配就返應none,group會報錯
match 相當於search的正規表示式中加了乙個'^'
spilt 返回列表,按照正則規財切影,預設匹配到的內容會被切掉
sub/subn 替換,按照正則規則去尋找要被善換掉的內容,subn返回元組,第二個值是普換的次數
compile 編譯乙個正規表示式,用這個結果去search match findalll finditer 能夠節省時間
finditer 返回乙個送代器,所有的結果都在這個送代器中,需要通過迴圈+group的形式取值
import re
ret = re.findall('a', 'eva egon yuan') # 返回所有滿足匹配條件的結果,放在列表裡
print(ret) #結果 : ['a', 'a']
ret = re.search('a', 'eva egon yuan').group()
print(ret) #結果 : 'a'
# 函式會在字串內查詢模式匹配,只到找到第乙個匹配然後返回乙個包含匹配資訊的物件,該物件可以
# 通過呼叫group()方法得到匹配的字串,如果字串沒有匹配,則返回none。
ret = re.match('a', 'abc').group() # 同search,不過盡在字串開始處進行匹配
print(ret)
#結果 : 'a'
ret = re.split('[ab]', 'abcd') # 先按'a'分割得到''和'bcd',在對''和'bcd'分別按'b'分割
print(ret) # ['', '', 'cd']
ret = re.sub('\d', 'h', 'eva3egon4yuan4', 1)#將數字替換成'h',引數1表示只替換1個
print(ret) #evahegon4yuan4
ret = re.subn('\d', 'h', 'eva3egon4yuan4')#將數字替換成'h',返回元組(替換的結果,替換了多少次)
print(ret)
obj = re.compile('\d') #將正規表示式編譯成為乙個 正規表示式物件,規則要匹配的是3個數字
ret = obj.search('abc123eeee') #正規表示式物件呼叫search,引數為待匹配的字串
print(ret.group()) #結果 : 123
import re
ret = re.finditer('\d', 'ds3sy4784a') #finditer返回乙個存放匹配結果的迭代器
print(ret) # print(next(ret).group()) #檢視第乙個結果
print(next(ret).group()) #檢視第二個結果
print([i.group() for i in ret]) #檢視剩餘的左右結果
findall中分組是有優先順序, search中分組則是由進行取到並且可以通過grop(1)進行獲取
取消優先分組(?:正規表示式)
Python的re模組學習
import re ret re.findall alex hdasoialexhosfo print ret 萬用字元 re1 re.findall c abcc print re1 以什麼開頭 ret2 re.findall ad.c adihoc l print ret2 以什麼結尾 re3 ...
python學習之re模組
這幾天玩爬蟲已經使用了很多次的re模組,算是比較熟悉了,這裡梳理一下。首先,關於正規表示式的概念,這裡有最好的教程。對於正規表示式,我們可以先用compile方法編譯為pattern物件,再呼叫相關的方法進行模式匹配,也可以直接進行匹配。對於第一種,示例如下 123 4567 8910import ...
python模組 re模組
匹配任意字元 匹配指定字元類別 字元開頭 字元結尾 取非字元 重複多次字元 0次或多次 重複多次字元 1次或多次 重複單次字元 左右表示式任意匹配 重複m到n次字元 重複m次字元 d 匹配任何十進位制數,相當於 0 9 d 匹配任何非數字字元,相當於 0 9 s 匹配任何空白字元,相當於 fdss ...