亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python re的findall和finditer的區(qū)別詳解

 更新時間:2020年11月15日 14:40:14   作者:_假象  
這篇文章主要介紹了python re的findall和finditer的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

python正則模塊re中findall和finditer兩者相似,但卻有很大區(qū)別。 

兩者都可以獲取所有的匹配結果,這和search方法有著很大的區(qū)別,同時不同的是一個返回list,一個返回一個MatchObject類型的iterator

假設我們有這樣的數(shù)據(jù):其中數(shù)字代表電話號,xx代表郵箱類型

content = '''email:12345678@163.com
email:2345678@163.com
email:345678@163.com
''' 

需求:(正則沒有分組)提取所有的郵箱信息

result_finditer = re.finditer(r"\d+@\w+.com", content)
#由于返回的為MatchObject的iterator,所以我們需要迭代并通過MatchObject的方法輸出
for i in result_finditer :
  print i.group()

result_findall = re.findall(r"\d+@\w+.com", content)
#返回一個[] 直接輸出or或者循環(huán)輸出
print result_findall
for i in result_findall :
  print i 

需求:(正則有分組)提取出來所有的電話號碼和郵箱類型

result_finditer = re.finditer(r"(\d+)@(\w+).com", content)
#正則有兩個分組,我們需要分別獲取分區(qū),分組從0開始,group方法不傳遞索引默認為0,代表了整個正則的匹配結果
for i in result_finditer :
  phone_no = i.group(1)
  email_type = i.group(2)

result_findall = re.findall(r"(\d+)@(\w+).com", content)
#此時返回的雖然為[],但不是簡單的[],而是一個tuple類型的list 
#如:[('12345678', '163'), ('2345678', '163'), ('345678', '163')]
for i in result_findall :
  phone_no = i[0]
  email_type = i[1] 

命名分組和非命名分組的情況是一樣的。

findall注意點:

1.當正則沒有分組是返回的就是正則的匹配

re.findall(r"\d+@\w+.com", content)
['2345678@163.com', '2345678@163.com', '345678@163.com'] 

2.有一個分組返回的是分組的匹配而不是整個正則的匹配

re.findall(r"(\d+)@\w+.com", content)
['2345678', '2345678', '345678'] 

3.多個分組時將分組裝到tuple中 返回

re.findall(r"(\d+)@(\w+).com", content)
[('2345678', '163'), ('2345678', '163'), ('345678', '163')] 

因此假如我們需要拿到整個正則和每個分組的匹配,使用findall我們需要將整個正則作為一個分組

re.findall(r"((\d+)@(\w+).com)", content)
[('2345678@163.com', '2345678', '163'), ('2345678@163.com', '2345678', '163'), ('345678@163.com', '345678', '163')] 

而使用finditer我們無需手動將整個正則用()括起來group()代表整個正則的匹配

實際中我們根據(jù)我們的需求選擇方法既可。

到此這篇關于python re的findall和finditer的區(qū)別詳解的文章就介紹到這了,更多相關python re的findall和finditer內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用Python實現(xiàn)跳幀截取視頻幀

    使用Python實現(xiàn)跳幀截取視頻幀

    這篇文章主要介紹了使用Python實現(xiàn)跳幀截取視頻幀,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • PyTorch加載模型model.load_state_dict()問題及解決

    PyTorch加載模型model.load_state_dict()問題及解決

    這篇文章主要介紹了PyTorch加載模型model.load_state_dict()問題及解決,具有很好的參考價值,希望對大家有所幫助。
    2023-02-02
  • Python 深入了解opencv圖像分割算法

    Python 深入了解opencv圖像分割算法

    本文主要介紹了Python通過opencv實現(xiàn)圖像分割的詳細過程與代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • numpy中實現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法

    numpy中實現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法

    下面小編就為大家分享一篇numpy中實現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Tensorflow實現(xiàn)在訓練好的模型上進行測試

    Tensorflow實現(xiàn)在訓練好的模型上進行測試

    今天小編就為大家分享一篇Tensorflow實現(xiàn)在訓練好的模型上進行測試,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python中的logging模塊實現(xiàn)日志打印

    Python中的logging模塊實現(xiàn)日志打印

    這篇文章主要介紹了Python中的logging模塊實現(xiàn)日志打印,其實不止print打印日志方便排查問題,Python自帶的logging模塊,也可以很簡單就能實現(xiàn)日志的配置和打印,下面來看看具體的實現(xiàn)過程吧,需要的朋友可以參考一下
    2022-03-03
  • python eval 轉換k m到乘法計算的操作

    python eval 轉換k m到乘法計算的操作

    這篇文章主要介紹了python eval 轉換k m到乘法計算的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 用python畫個敬業(yè)福字代碼

    用python畫個敬業(yè)福字代碼

    大家好,本篇文章主要講的是用python畫個敬業(yè)福字代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • python裝飾器使用方法實例

    python裝飾器使用方法實例

    這篇文章主要介紹了python裝飾器的使用方法,大家參考使用
    2013-11-11
  • Python爬取百度地圖POI數(shù)據(jù)代碼的步驟

    Python爬取百度地圖POI數(shù)據(jù)代碼的步驟

    爬取百度地圖的POI數(shù)據(jù)涉及法律和道德問題,因為這類數(shù)據(jù)受到版權保護,且大多數(shù)在線地圖服務都有嚴格的反爬蟲措施,這篇文章主要介紹了Python爬取百度地圖POI數(shù)據(jù)代碼,需要的朋友可以參考下
    2024-08-08

最新評論