python常用的正則表達(dá)式大全
1.正則表達(dá)式
正則表達(dá)式是用來(lái)匹配與查找字符串的,從網(wǎng)上爬取數(shù)據(jù)自然或多或少會(huì)用到正則表達(dá)式,python的正則表達(dá)式要先引入re模塊,正則表達(dá)式以r引導(dǎo),例如:
其中**r“\d+”**正則表達(dá)式表示匹配連續(xù)的多個(gè)數(shù)值,search是re中的函數(shù),從"abc123cd"字符串中搜索連續(xù)的數(shù)值,得到"123",返回一個(gè)匹配對(duì)象,結(jié)果如上.
2.字符串"\d"匹配0~9之間的一個(gè)數(shù)值
3.字符"+"重復(fù)前面一個(gè)匹配字符一次或者多次.
注意:**r"b\d+"**第一個(gè)字符要匹配"b",后面是連續(xù)的多個(gè)數(shù)字,因此"是b1233",不是"a12".
4.字符"*"重復(fù)前面一個(gè)匹配字符零次或者多次.
“" 與 "+"類似,但有區(qū)別,列如:
可見(jiàn) r"ab+“匹配的是"ab”,但是r"ab “匹配的是"a”,因?yàn)楸硎?quot;b"可以重復(fù)零次,但是”+“卻要求"b"重復(fù)一次以上.
5.字符"?"重復(fù)前面一個(gè)匹配字符零次或者一次.
匹配結(jié)果"ab”,重復(fù)b一次.
6.字符".“代表任何一個(gè)字符,但是沒(méi)有特別聲明時(shí)不代表字符”\n".
結(jié)果“.”代表了字符"x".
7."|"代表把左右分成兩個(gè)部分 .
結(jié)果匹配"ab"或者"ba"都可以.
8.特殊字符使用反斜杠"“引導(dǎo),例如”\r"、"\n"、"\t"、"\"分別表示回車、換行、制表符號(hào)與反斜線自己本身.
9.字符"\b"表示單詞結(jié)尾,單詞結(jié)尾包括各種空白字符或者字符串結(jié)尾.
結(jié)果匹配"car",因?yàn)?quot;car"后面是一個(gè)空格.
10."[]中的字符是任選擇一個(gè),如果字符ASCll碼中連續(xù)的一組,那么可以使用"-"字符連接,例如[0-9]表示0-9的其中一個(gè)數(shù)字,[A-Z]表示A-Z的其中一個(gè)大寫(xiě)字符,[0-9A-z]表示0-9的其中一個(gè)數(shù)字或者A-z的其中一個(gè)大寫(xiě)字符.
11."^"出現(xiàn)在[]的第一個(gè)字符位置,就代表取反,例如[ ^ab0-9]表示不是a、b,也不是0-9的數(shù)字.
12."\s"匹配任何空白字符,等價(jià)"[\r\n\x20\t\f\v]"
13."\w"匹配包括下劃線子內(nèi)的單詞字符,等價(jià)于"[a-zA-Z0-9]"
14."$"字符比配字符串的結(jié)尾位置
匹配結(jié)果是最后一個(gè)"ab",而不是第一個(gè)"ab"
15.使用括號(hào)(…)可以把(…)看出一個(gè)整體,經(jīng)常與"+"、"*"、"?"的連續(xù)使用,對(duì)(…)部分進(jìn)行重復(fù).
結(jié)果匹配"abab","+“對(duì)"ab"進(jìn)行了重復(fù)
16.查找匹配字符串
正則表達(dá)式re庫(kù)的search函數(shù)使用正則表達(dá)式對(duì)要匹配的字符串進(jìn)行匹配,如果匹配不成功返回None,如果匹配成功返回一個(gè)匹配對(duì)象,匹配對(duì)象調(diào)用start()函數(shù)得到匹配字符的開(kāi)始位置,匹配對(duì)象調(diào)用end()函數(shù)得到匹配字符串的結(jié)束位置,search雖然只返回匹配第一次匹配的結(jié)果,但是我們只要連續(xù)使用search函數(shù)就可以找到字符串全部匹配的字符串.
匹配找出英文句子中所有單詞
我們可以使用正則表達(dá)式r”[A-Za-z]+\b"匹配單詞,它表示匹配由大小寫(xiě)字母組成的連續(xù)多個(gè)字符,一般是一個(gè)單詞,之后"\b"表示單詞結(jié)尾.
程序開(kāi)始匹配到一個(gè)單詞后m.start(),m.end()就是單詞的起始位置,s[start:end]為截取的單詞,之后程序再次匹配字符串s=s[end:],即字符串的后半段,一直到匹配完畢為止就找出每個(gè)單詞.
總結(jié)
到此這篇關(guān)于python常用正則表達(dá)式的文章就介紹到這了,更多相關(guān)python正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3 ffmpeg視頻轉(zhuǎn)換工具使用方法解析
這篇文章主要介紹了Python3 ffmpeg視頻轉(zhuǎn)換工具使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08tensorflow 獲取checkpoint中的變量列表實(shí)例
今天小編就為大家分享一篇tensorflow 獲取checkpoint中的變量列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python學(xué)習(xí)之異常中的finally使用詳解
這篇文章主要為大家介紹一下Python異常語(yǔ)法中的另一個(gè)成員—finally,通過(guò)學(xué)習(xí)finally,可以幫助我們更好的處理異常,快來(lái)跟隨小編一起學(xué)習(xí)一下吧2022-03-03python如何創(chuàng)建TCP服務(wù)端和客戶端
這篇文章主要為大家詳細(xì)介紹了python如何創(chuàng)建TCP服務(wù)端和客戶端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Android Q之氣泡彈窗的實(shí)現(xiàn)示例
這篇文章主要介紹了Android Q之氣泡彈窗的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06簡(jiǎn)單介紹Python的輕便web框架Bottle
這篇文章主要介紹了Python的輕便web框架Bottle,因其注重輕便的設(shè)計(jì),與Flask一樣,Bottle框架的人氣同樣也非常高,需要的朋友可以參考下2015-04-04