這篇文章主要介紹python中re庫(kù)的正則表達(dá)式怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
在靖宇等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需求定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,靖宇網(wǎng)站建設(shè)費(fèi)用合理。1. 安裝
默認(rèn)已經(jīng)安裝好了python環(huán)境了
re庫(kù)是python3的核心庫(kù),不需要pip install,直接import就行
2. 最簡(jiǎn)單的模式
字符本身就是最簡(jiǎn)單的模式
比如:'A', 'I love you', 'test'
然是注意在定義模式字符串的時(shí)候,在前面加上r,它的作用是告訴編譯器,接下來(lái)的字符串是單純的字符串,請(qǐng)不要轉(zhuǎn)變?yōu)檗D(zhuǎn)義字符。
例子
import re pattern = r'Cookie' sequence = 'Cookie' re.match(pattern, sequence)
<re.Match object; span=(0, 6), match='Cookie'>
re.match()是常用的函數(shù),如果匹配,返回的是re.Match object.一個(gè)庫(kù)內(nèi)置的對(duì)象。如果沒(méi)有匹配返回的是None
3. 通配符
在正則表達(dá)式中,有些字符是有特殊意義的(不是轉(zhuǎn)義字符的那套規(guī)則),下面介紹常用的通配符字符
1)".":點(diǎn),代表任何字符,除了換行(newline)
re.search(r'Co.k.e', 'Cookie').group()
其中g(shù)roup()函數(shù)返回匹配的字符,返回類(lèi)型是str
'Cookie'
2) "\w" 反斜杠小寫(xiě)w,代表任何單個(gè)字母,數(shù)字,下劃線(xiàn)
re.search(r'Co\wk\we', 'Cookie').group()
'Cookie'
3) "\W" 反斜杠大寫(xiě)W,代表任何2)中沒(méi)有代表的字符
re.search(r'C\Wke', 'C@ke').group()
'C@ke'
4) "\s" 反斜杠小寫(xiě)s,代表一些空格字符,比如空格(space),換行(new line),跳格鍵(tab),回車(chē)(return)
re.search(r'Eat\scake', 'Eat cake').group()
'Eat cake'
5) "\S" 反斜杠大寫(xiě)S,代表任何4)中沒(méi)有代表的字符
re.search(r'Cook\Se', 'Cookie').group()
'Cookie'
6) "\t" 反斜杠小寫(xiě)t,代表跳格鍵(tab)
7) "\n" 反斜杠小寫(xiě)t,代表?yè)Q行(new line)
8) "\r" 反斜杠小寫(xiě)t,代表回車(chē)(return)
9) "\d" 反斜杠小寫(xiě)d,代表單個(gè)數(shù)字0-9
re.search(r'c\d\dkie', 'c00kie').group()
'c00kie'
10) "^" 這個(gè)鍵不知道叫什么,代表從字符開(kāi)頭要匹配
re.search(r'^Eat', 'Eat cake').group()
'Eat'
11) "$" 美元符號(hào),代表從字符結(jié)尾要匹配
re.search(r'cake$', 'Eat cake').group()
'cake'
12) "[abc]" 中括號(hào)中任意字符,代表匹配其中任意字符
常用的方式,比如[a-zA-Z0-9],或者如果中括號(hào)中第一個(gè)字符是"^",代表不是這個(gè)范圍內(nèi)的字符
re.search(r'Number: [0-6]', 'Number: 5')
<re.Match object; span=(0, 9), match='Number: 5'>
再來(lái)個(gè)不在范圍內(nèi)的
re.search(r'Number: [^0-6]', 'Number: 7')
<re.Match object; span=(0, 9), match='Number: 7'>
4. 重復(fù)
第三部分介紹了單個(gè)通配符,那么怎么定義一串通配符呢,利用一些重復(fù)的標(biāo)志
1) "+" 加號(hào),表示在它左邊的字符出現(xiàn)一次或者多次
re.search(r'Co+kie', 'Cooookie')
<re.Match object; span=(0, 8), match='Cooookie'>
2) "*" 乘號(hào),表示在它左邊的字符出現(xiàn)零次或者多次
re.search(r'Ca*o*kie', 'Caokie').group()
'Caokie'
3) "?" 問(wèn)號(hào),表示在它左邊的字符出現(xiàn)零次或者一次
re.search(r'Colou?r', 'Color').group()
'Color'
4) {x} 大括號(hào)加數(shù)字,重復(fù)確切幾次
5) {x,} 重復(fù)至少幾次
6) {x, y} 重復(fù)至少x次,不超過(guò)y次
re.search(r'\d{9,10}', '0987654321').group()
'0987654321'
5. 分組
比如說(shuō)想定義一個(gè)email的格式,@之前的是一個(gè)規(guī)則,之后的是一個(gè)規(guī)則,那么通過(guò)()圓括號(hào)來(lái)分為兩組,分別定義在一個(gè)正則表達(dá)式中
然后如果滿(mǎn)足的話(huà),通過(guò)group()函數(shù)指定返回哪一組的結(jié)果
比如
email_address = 'Please contact us at: support@datacamp.com' match = re.search(r'([\w+-]+)@([\w\.-]+)', 'tw7613781@gmail.com') if match: print(match.group()) # The whole matched text print(match.group(1)) # The username (group 1) print(match.group(2)) # The host (group 2)
tw7613781@gmail.com tw7613781 gmail.com
@前為第一部分,\w代表代表任何單個(gè)字母,數(shù)字,下劃線(xiàn),上面已經(jīng)介紹了,然后就是"\w"和"+"和"-"隨便哪一個(gè)至少一個(gè)或者多個(gè)
@后為第二部分,其余一樣,就是多了個(gè)"\.",因?yàn)?quot;."代表的是任意字符了,如果想表達(dá)真正的點(diǎn),用"\."來(lái)表示。
6. python庫(kù)函數(shù)re的常用函數(shù)
1) re.search(pattern, string)和re.match(pattern, string)
區(qū)別在于search能從string中尋找任何滿(mǎn)足pattern的substring,但是match必須從頭開(kāi)始
pattern = "cookie" sequence = "Cake and cookie" re.search(pattern, sequence).group()
'cookie'
如果是match會(huì)返回None
2) re.findall(pattern, string)
尋找string所有滿(mǎn)足pattern的substring,然后以list的形式返回
email_address = "Please contact us at: support@datacamp.com, xyz@datacamp.com" #'addresses' is a list that stores all the possible match addresses = re.findall(r'[\w\.-]+@[\w\.-]+', email_address) for address in addresses: print(address)
support@datacamp.com xyz@datacamp.com
3) re.compile(pattern)
通過(guò)compile函數(shù)會(huì)生成一個(gè)pattern對(duì)象,這個(gè)pattern對(duì)象可以直接使用match,search等函數(shù)
In: pattern = re.compile(r"cookie") In: pattern Out: re.compile(r'cookie', re.UNICODE) In: pattern.search('cookie') Out: <re.Match object; span=(0, 6), match='cookie'>
以上是“python中re庫(kù)的正則表達(dá)式怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
分享標(biāo)題:python中re庫(kù)的正則表達(dá)式怎么用-創(chuàng)新互聯(lián)
地址分享:http://jinyejixie.com/article10/dhdpgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、軟件開(kāi)發(fā)、網(wǎng)站內(nèi)鏈、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容