国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python編程之Re模塊下的函數(shù)介紹

2020-02-16 10:30:45
字體:
供稿:網(wǎng)友

re模塊下的函數(shù)

compile(pattern):創(chuàng)建模式對象

import repat=re.compile('A')m=pat.search('CBA')          #等價于 re.search('A','CBA')print m<_sre.SRE_Match object at 0x9d690c8>  #匹配到了,返回MatchObject(True)m=pat.search('CBD')print mNone                  #沒有匹配到,返回None(False)

search(pattern,string):在字符串中尋找模式

m = re.search('asd','ASDasd')print m<_sre.SRE_Match object at 0xb72cd6e8> #匹配到了,返回MatchObject(True)m = re.search('asd','ASDASD')print mNone                  #沒有匹配到,返回None(False)

match(pattern,string):在字符串開始處匹配模式

m = re.search('asd','ASDasd')print m<_sre.SRE_Match object at 0xb72cd6e8> #匹配到了,返回MatchObject(True)m = re.search('asd','ASDASD')print mNone                  #沒有匹配到,返回None(False)

等價于

pat=re.compile('a')print pat.match('Aasd')Noneprintpat.match('aASD')<_sre.SRE_Match object at 0xb72cd6e8>

上面的函數(shù)返回都可以在if條件語句中進(jìn)行判斷:

if pat.search('asd'):...   print 'OK'... OK    #找到返回if re.search('a','ASD'):...   print "OK"...    #沒有找到

split(pattern,string):根據(jù)模式分割字符串,返回列表

re.split(',','a,s,d,asd')['a', 's', 'd', 'asd']     #返回列表 pat = re.compile(',')pat.split('a,s,d,asd')['a', 's', 'd', 'asd']     #返回列表 re.split('[, ]+','a , s ,d   ,,,,,asd')  #正則匹配:[, ]+,后面說明['a', 's', 'd', 'asd'] re.split('[, ]+','a , s ,d   ,,,,,asd',maxsplit=2) # maxsplit 最多分割次數(shù)['a', 's', 'd   ,,,,,asd'] pat = re.compile('[, ]+')           #正則匹配:[, ]+,后面說明pat.split('a , s ,d   ,,,,,asd',maxsplit=2)    # maxsplit 最多分割次數(shù)['a', 's', 'd   ,,,,,asd']

findall(pattern,string):列表形式返回匹配項

re.findall('a','ASDaDFGAa') ['a', 'a']              #列表形式返回匹配到的字符串pat = re.compile('a')pat.findall('ASDaDFGAa')['a', 'a']              #列表形式返回匹配到的字符串pat = re.compile('[A-Z]+')    #正則匹配:'[A-Z]+' 后面有說明pat.findall('ASDcDFGAa')['ASD', 'DFGA']           #找到匹配到的字符串pat = re.compile('[A-Z]')pat.findall('ASDcDFGAa')     #正則匹配:'[A-Z]+' 后面有說明['A', 'S', 'D', 'D', 'F', 'G', 'A'] #找到匹配到的字符串pat = re.compile('[A-Za-z]')   #正則匹配:'[A-Za-z]+' 匹配所有單詞,后面有說明pat.findall('ASDcDFGAa')['A', 'S', 'D', 'c', 'D', 'F', 'G', 'A', 'a'] 

sub(pat,repl,string) :用repl替換 pat匹配項

(留的是中間的,因為中間在中心)

 re.sub('a','A','abcasd')  #找到a用A替換,后面見和group的配合使用'AbcAsd'pat = re.compile('a')pat.sub('A','abcasd')'AbcAsd' pat=re.compile(r'www/.(.*)/..{3}') #正則表達(dá)式 #在Python的string前面加上‘r', 是為了告訴編譯器這個string是個raw string,不要轉(zhuǎn)譯反斜杠 '/' 。 #例如,/n 在raw string中,是兩個字符,/和n, 而不會轉(zhuǎn)譯為換行符。 #由于正則表達(dá)式和 / 會有沖突,因此,當(dāng)一個字符串使用了正則表達(dá)式后,最好在前面加上'r'。  #與大多數(shù)編程語言相同,正則表達(dá)式里使用"/"作為轉(zhuǎn)義字符,這就可能造成反斜杠困擾。  #假如你需要匹配文本中的字符"/",那么使用編程語言表示的正則表達(dá)式里將需要4個反斜杠"http:////":  #前兩個和后兩個分別用于在編程語言里轉(zhuǎn)義成反斜杠,轉(zhuǎn)換成兩個反斜杠后再在正則表達(dá)式里轉(zhuǎn)義成一個反斜杠。  #Python里的原生字符串很好地解決了這個問題,這個例子中的正則表達(dá)式可以使用r"http://"表示。  #同樣,匹配一個數(shù)字的"http://d"可以寫成r"/d"。  #有了原生字符串,你再也不用擔(dān)心是不是漏寫了反斜杠,寫出來的表達(dá)式也更直觀。  #不是說 加了r /就沒有轉(zhuǎn)譯功能,好亂,就直接記住1句話:  #當(dāng)一個字符串使用了正則表達(dá)式后,最好在前面加上'r',這樣你再也不用擔(dān)心是不是漏寫了反斜杠,寫出來的表達(dá)式也更直觀pat.match('www.dxy.com').group(1)'dxy're.sub(r'www/.(.*)/..{3}',r'/1','hello,www.dxy.com')pat.sub(r'/1','hello,www.dxy.com') 'hello,dxy'# r'1' 是第一組的意思#通過正則匹配找到符合規(guī)則的"www.dxy.com" ,取得 組1字符串 去替換 整個匹配。 pat=re.compile(r'(/w+) (/w+)')   #正則表達(dá)式s='hello world ! hello hz !'pat.findall('hello world ! hello hz !')[('hello', 'world'), ('hello', 'hz')]pat.sub(r'/2 /1',s)        #通過正則得到組1(hello),組2(world),再通過sub去替換。即組1替換組2,組2替換組1,調(diào)換位置。 'world hello!hz hello!'            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 金华市| 洪洞县| 东港市| 简阳市| 梓潼县| 进贤县| 桦甸市| 安阳县| 楚雄市| 乾安县| 曲麻莱县| 神农架林区| 内江市| 石柱| 太白县| 老河口市| 博兴县| 邳州市| 福安市| 综艺| 克什克腾旗| 保靖县| 嘉黎县| 宜州市| 石景山区| 新和县| 祁东县| 偃师市| 迁西县| 高碑店市| 寿阳县| 彰化市| 阿荣旗| 盈江县| 庄河市| 长治市| 城市| 双牌县| 闵行区| 吉林省| 鸡泽县|