python正則表達式之re.match()與re.search()的用法及區(qū)別
1、re.match()的用法
re.match()方法是從起始位置開始匹配一個模式,匹配成功返回一個對象,未匹配成功返回None。
語法:
re.match(pattern, string, flags=0)
參數(shù)說明:
- pattern:匹配的正則表達式;
- string:要匹配的字符串;
- flags:標志位,用于控制正則表達式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等;
示例如下:
#!/usr/bin/env python # -*- coding:utf-8 -*- import re if __name__ == '__main__': # 匹配模式 test_pattern = r"\d{2}年" # 待匹配的字符串 test = "18年2019年2020年" print(re.match(test_pattern, test).group())
輸出:
18年
Process finished with exit code 0
若將匹配模式改成:
#!/usr/bin/env python # -*- coding:utf-8 -*- import re if __name__ == '__main__': # 匹配模式 test_pattern = r"\d{4}年" # 待匹配的字符串 test = "18年2019年2020年" print(re.match(test_pattern, test))
則返回結(jié)果為:
None
Process finished with exit code 0
這是因為re.match()僅從頭開始匹配,由于起始位置處未找到符合匹配模式的內(nèi)容,返回None。
2、re.search()的用法
re.search()方法是掃描整個字符串內(nèi)進行模式匹配,只要找到第一個匹配就返回,如果字符串沒有匹配,則返回None。
語法:
re.search(pattern, string, flags=0)
參數(shù)說明:
- pattern:匹配的正則表達式;
- string:要匹配的字符串;
- flags:標志位,用于控制正則表達式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等;
示例如下:
#!/usr/bin/env python # -*- coding:utf-8 -*- import re if __name__ == '__main__': # 匹配模式 test_pattern = r"\d{4}年" # 待匹配的字符串 test = "18年2019年2020年" print(re.search(test_pattern, test).group())
輸出:
2019年
Process finished with exit code 0
這是因為re.search()掃描整個字符串,找到符合匹配模式的第一個匹配就返回了。
3、re.match()與re.search()的區(qū)別
re.match()方法要求必須從字符串的開頭進行匹配,如果字符串開頭不符合模式規(guī)則,整個匹配就失敗了,函數(shù)返回None;
re.search()并不要求必須從字符串的開頭進行匹配,而是掃描整個字符串,直到找到第一個匹配。
到此這篇關(guān)于python正則表達式之re.match()與re.search()的用法及區(qū)別的文章就介紹到這了,更多相關(guān)python re.match()與re.search()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python對接PicGo實現(xiàn)圖片自動加水印并上傳操作示例
這篇文章主要為大家介紹了Python對接PicGo實現(xiàn)圖片自動加水印并上傳的操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10opencv函數(shù)threshold、adaptiveThreshold、Otsu二值化的實現(xiàn)
這篇文章主要介紹了opencv函數(shù)threshold、adaptiveThreshold、Otsu二值化的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python 中PyQt5 點擊主窗口彈出另一個窗口的實現(xiàn)方法
這篇文章主要介紹了Python 中PyQt5 點擊主窗口彈出另一個窗口的實現(xiàn)方法,本文代碼實例圖文相結(jié)合的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07快速掌握python權(quán)限功能設(shè)計實戰(zhàn)指南
在處理權(quán)限控制時,裝飾器能幫助我們以一種統(tǒng)一且簡潔的方式管理不同用戶對系統(tǒng)資源的訪問權(quán)限,本文將通過幾個簡單的示例逐步展示如何利用Python裝飾器實現(xiàn)從基礎(chǔ)到復(fù)雜的權(quán)限控制功能2024-01-01詳解使用 pyenv 管理多個版本 python 環(huán)境
本篇文章主要介紹了詳解使用 pyenv 管理多個版本 python 環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10