python re模組

來源:互聯網
上載者:User

標籤:一個   dal   沒有   編譯   sea   pytho   注意   info   條件   

re模組常用方法 :

import reret = re.findall(‘a‘, ‘eva egon yuan‘)  # 返回所有滿足匹配條件的結果,放在列表裡,#re.findall( ‘Regex‘,‘待匹配字串‘) 返回待匹配字串中滿足運算式的字串print(ret) #結果 : [‘a‘, ‘a‘]ret = re.search(‘a‘, ‘eva egon yuan‘).group()#search方法在字串內尋找第一個滿足運算式的字串並返回一個正則對象地址# ,通過group()查看返回的內容,無匹配成功字串返回Noneprint(ret) #結果 : ‘a‘# 函數會在字串內尋找模式比對,只到找到第一個匹配然後返回一個包含匹配資訊的對象,該對象可以# 通過調用group()方法得到匹配的字串,如果字串沒有匹配,則返回None。ret = re.match(‘a‘, ‘abc‘).group()# 同search,不過只在字串開始處進行匹配,開始出沒有符合運算式的字串,返回None,# 匹配成功的話通過group()查看返回的字串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) #evaHegon4yuan4ret = re.subn(‘\d‘, ‘H‘, ‘eva3egon4yuan4‘)#將數字替換成‘H‘,返回元組(替換的結果,替換了多少次)print(ret)    #結果: (‘evaHegonHyuanH‘,3)obj = re.compile(‘\d{3}‘)  #將Regex編譯成為一個 Regex對象,規則要匹配的是3個數字ret = obj.search(‘abc123eeee‘) #Regex對象調用search,參數為待匹配的字串print(ret.group())  #結果 : 123import reret = re.finditer(‘\d‘, ‘ds3sy4784a‘)   #finditer返回一個存放匹配結果的迭代器print(ret)  # <callable_iterator object at 0x10195f940>print(next(ret).group())  #查看第一個結果print(next(ret).group())  #查看第二個結果# for i in ret: #可以對迭代器進行迭代,查看每一個內容#     print(i.group())print([i.group() for i in ret])  #查看剩餘的左右結果

 

注意 : 

  1. findall的優先查詢 :  ‘ ?: ‘ 為取消優先返回匹配

import reret = re.findall(‘www.(baidu|oldboy).com‘, ‘www.oldboy.com‘)print(ret)  # [‘oldboy‘]     這是因為findall會優先把匹配結果組裡內容返回,如果想要匹配結果,取消許可權即可ret = re.findall(‘www.(?:baidu|oldboy).com‘, ‘www.oldboy.com‘)print(ret)  # [‘www.oldboy.com‘]

  2. split的優先順序查詢 :

ret=re.split("\d+","eva3egon4yuan")print(ret) #結果 : [‘eva‘, ‘egon‘, ‘yuan‘]ret=re.split("(\d+)","eva3egon4yuan")print(ret) #結果 : [‘eva‘, ‘3‘, ‘egon‘, ‘4‘, ‘yuan‘]#在匹配部分加上()之後所切出的結果是不同的,#沒有()的沒有保留所匹配的項,但是有()的卻能夠保留了匹配的項,#這個在某些需要保留匹配部分的使用過程是非常重要的。

 

例 :

分組命名 :

  (?P<name>Regex) ,表示給分組起名字

  (?P = name) 表示使用這個分組,這裡匹配到的內容應該和分組中的內容完全相同

python re模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.