教你學(xué)會(huì)使用Python正則表達(dá)式

今天寫(xiě)爬蟲(chóng)偶然想到了初學(xué)正則表達(dá)式時(shí)候,看過(guò)一篇文章非常不錯(cuò)。檢索一下還真的找到了。
re模塊

re.search
經(jīng)常用match = re.search(pat, str)的形式。因?yàn)橛锌赡芷ヅ洳坏?,所以re.search()后面一般用if statement。

re.match
re.match和re.search很相似,只是re.match是從字符串的開(kāi)頭開(kāi)始匹配。

常用正則字符意義 a, X, 9,等字符匹配自己, 元字符不匹配自己,因?yàn)橛刑厥庖饬x,比如 . ^ $ * + ? { }[ ] \ | ( ) . 英文句號(hào),匹配任意字符,不包含'\n' \w 匹配'word'字符,[a-zA-Z0-9] \W 匹配非'word'字符 \b 匹配'word'和'non-word'之間邊界 \s 匹配單個(gè)whitespace字符,space, newline, return, tab, form [\n\r\t\f] \S 匹配non-whitespace字符 \t, \n, \r 匹配tab, newline, return \d 匹配數(shù)字[0-9] ^ 匹配字符串開(kāi)頭 $ 匹配字符串結(jié)尾 重復(fù)
‘+' 一或多次, ‘*' 零或多次, ‘?' 零或一次
方括號(hào)[]

[]類似于or
Square brackets can be used to indicate a set of chars, so [abc] matches 'a' or 'b' or 'c'.

Group Extraction圓括號(hào)()
有時(shí)候需要提取匹配字符的一部分,比如剛才的郵箱,我們可能需要其中的username和hostname,這時(shí)候可以用()分別把username和hostname包起來(lái),就像r'([\w.-]+)@([\w.-]+)',如果匹配成功,那么pattern不改變,只是可以用match.group(1)和match.group(2)來(lái)username和hostname,match.group()結(jié)果不變。

findall and groups
()和findall()結(jié)合,如果包括一或多個(gè)group,就返回a list of tuples。

給re.search加^之后是一樣的。
re.sub
re.sub(pat, replacement, str)在str里尋找和pattern匹配的字符串,然后用replacement替換。replacement可以包含\1或者\(yùn)2來(lái)代替相應(yīng)的group,然后實(shí)現(xiàn)局部替換。 
相關(guān)文章
Python可執(zhí)行文件反編譯教程(exe轉(zhuǎn)py)
python的便利性,使得如今許多軟件開(kāi)發(fā)者、黑客都開(kāi)始使用python打包成exe的方式進(jìn)行程序的發(fā)布,那么Python如何反編譯可執(zhí)行文件,本文就來(lái)介紹一下,感興趣的可以了解一下2021-12-12
python通過(guò)設(shè)置WordCloud參數(shù)實(shí)現(xiàn)定制詞云
這篇文章主要為大家詳細(xì)介紹了python如何通過(guò)設(shè)置WordCloud參數(shù)實(shí)現(xiàn)定制詞云,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
pytorch部署到j(luò)upyter中的問(wèn)題及解決方案
這篇文章主要介紹了pytorch部署到j(luò)upyter中,在這里需要注意我再輸入的時(shí)候出現(xiàn)了一些無(wú)法定位的提示,但是我的電腦沒(méi)有影響使用jupyter,還是可以使用jupyter并且可以import torch,本文給大家講解的非常詳細(xì),需要的朋友參考下吧2022-05-05
python實(shí)戰(zhàn)之Scrapy框架爬蟲(chóng)爬取微博熱搜
前面講解了Scrapy中各個(gè)模塊基本使用方法以及代理池、Cookies池。接下來(lái)我們以一個(gè)反爬比較強(qiáng)的網(wǎng)站新浪微博為例,來(lái)實(shí)現(xiàn)一下Scrapy的大規(guī)模爬取。2021-09-09
Python實(shí)現(xiàn)CAN報(bào)文轉(zhuǎn)換工具教程
這篇文章主要介紹了Python實(shí)現(xiàn)CAN報(bào)文轉(zhuǎn)換工具教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Python使用itertools模塊實(shí)現(xiàn)排列組合功能示例
這篇文章主要介紹了Python使用itertools模塊實(shí)現(xiàn)排列組合功能,涉及Python基于itertools模塊product、permutations與combinations_with_replacement方法進(jìn)行排列、組合等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-07-07
使用pycharm+conda配置虛擬環(huán)境的詳細(xì)步驟
這篇文章主要介紹了使用pycharm創(chuàng)建新的項(xiàng)目環(huán)境并使用conda進(jìn)行配置和使用pycharm引用已有的conda虛擬環(huán)境,文中通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
解決Django transaction進(jìn)行事務(wù)管理踩過(guò)的坑
這篇文章主要介紹了解決Django transaction進(jìn)行事務(wù)管理踩過(guò)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
Python圖像處理模塊ndimage用法實(shí)例分析
這篇文章主要介紹了Python圖像處理模塊ndimage用法,結(jié)合實(shí)例形式分析了Python圖像處理模塊ndimage基本功能及常見(jiàn)的圖形運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09

