python正則表達(dá)式之re.match()與re.search()的用法及區(qū)別
1、re.match()的用法
re.match()方法是從起始位置開(kāi)始匹配一個(gè)模式,匹配成功返回一個(gè)對(duì)象,未匹配成功返回None。
語(yǔ)法:
re.match(pattern, string, flags=0)
參數(shù)說(shuō)明:
- pattern:匹配的正則表達(dá)式;
- string:要匹配的字符串;
- flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫(xiě),多行匹配等等;
示例如下:
#!/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
這是因?yàn)閞e.match()僅從頭開(kāi)始匹配,由于起始位置處未找到符合匹配模式的內(nèi)容,返回None。
2、re.search()的用法
re.search()方法是掃描整個(gè)字符串內(nèi)進(jìn)行模式匹配,只要找到第一個(gè)匹配就返回,如果字符串沒(méi)有匹配,則返回None。
語(yǔ)法:
re.search(pattern, string, flags=0)
參數(shù)說(shuō)明:
- pattern:匹配的正則表達(dá)式;
- string:要匹配的字符串;
- flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫(xiě),多行匹配等等;
示例如下:
#!/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
這是因?yàn)閞e.search()掃描整個(gè)字符串,找到符合匹配模式的第一個(gè)匹配就返回了。
3、re.match()與re.search()的區(qū)別
re.match()方法要求必須從字符串的開(kāi)頭進(jìn)行匹配,如果字符串開(kāi)頭不符合模式規(guī)則,整個(gè)匹配就失敗了,函數(shù)返回None;
re.search()并不要求必須從字符串的開(kāi)頭進(jìn)行匹配,而是掃描整個(gè)字符串,直到找到第一個(gè)匹配。
到此這篇關(guān)于python正則表達(dá)式之re.match()與re.search()的用法及區(qū)別的文章就介紹到這了,更多相關(guān)python re.match()與re.search()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
最大K個(gè)數(shù)問(wèn)題的Python版解法總結(jié)
這篇文章主要介紹了最大K個(gè)數(shù)問(wèn)題的Python版解法總結(jié),以最大K個(gè)數(shù)問(wèn)題為基礎(chǔ)的算法題目在面試和各大考試及競(jìng)賽中經(jīng)常出現(xiàn),需要的朋友可以參考下2016-06-06Python對(duì)接PicGo實(shí)現(xiàn)圖片自動(dòng)加水印并上傳操作示例
這篇文章主要為大家介紹了Python對(duì)接PicGo實(shí)現(xiàn)圖片自動(dòng)加水印并上傳的操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10opencv函數(shù)threshold、adaptiveThreshold、Otsu二值化的實(shí)現(xiàn)
這篇文章主要介紹了opencv函數(shù)threshold、adaptiveThreshold、Otsu二值化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python 中PyQt5 點(diǎn)擊主窗口彈出另一個(gè)窗口的實(shí)現(xiàn)方法
這篇文章主要介紹了Python 中PyQt5 點(diǎn)擊主窗口彈出另一個(gè)窗口的實(shí)現(xiàn)方法,本文代碼實(shí)例圖文相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07淺談python3.6的tkinter運(yùn)行問(wèn)題
今天小編就為大家分享一篇淺談python3.6的tkinter運(yùn)行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02快速掌握python權(quán)限功能設(shè)計(jì)實(shí)戰(zhàn)指南
在處理權(quán)限控制時(shí),裝飾器能幫助我們以一種統(tǒng)一且簡(jiǎn)潔的方式管理不同用戶(hù)對(duì)系統(tǒng)資源的訪問(wèn)權(quán)限,本文將通過(guò)幾個(gè)簡(jiǎn)單的示例逐步展示如何利用Python裝飾器實(shí)現(xiàn)從基礎(chǔ)到復(fù)雜的權(quán)限控制功能2024-01-01詳解使用 pyenv 管理多個(gè)版本 python 環(huán)境
本篇文章主要介紹了詳解使用 pyenv 管理多個(gè)版本 python 環(huán)境,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10