python正則表達(dá)式之re.match()與re.search()的用法及區(qū)別
1、re.match()的用法
re.match()方法是從起始位置開始匹配一個(gè)模式,匹配成功返回一個(gè)對(duì)象,未匹配成功返回None。
語(yǔ)法:
re.match(pattern, string, flags=0)
參數(shù)說(shuō)明:
- pattern:匹配的正則表達(dá)式;
- string:要匹配的字符串;
- flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(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
這是因?yàn)閞e.match()僅從頭開始匹配,由于起始位置處未找到符合匹配模式的內(nèi)容,返回None。
2、re.search()的用法
re.search()方法是掃描整個(gè)字符串內(nèi)進(jìn)行模式匹配,只要找到第一個(gè)匹配就返回,如果字符串沒有匹配,則返回None。
語(yǔ)法:
re.search(pattern, string, flags=0)
參數(shù)說(shuō)明:
- pattern:匹配的正則表達(dá)式;
- string:要匹配的字符串;
- flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(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
這是因?yàn)閞e.search()掃描整個(gè)字符串,找到符合匹配模式的第一個(gè)匹配就返回了。
3、re.match()與re.search()的區(qū)別
re.match()方法要求必須從字符串的開頭進(jìn)行匹配,如果字符串開頭不符合模式規(guī)則,整個(gè)匹配就失敗了,函數(shù)返回None;
re.search()并不要求必須從字符串的開頭進(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)文章
詳解Python requests 超時(shí)和重試的方法
這篇文章主要介紹了詳解Python requests 超時(shí)和重試的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-12-12
tensorflow 固定部分參數(shù)訓(xùn)練,只訓(xùn)練部分參數(shù)的實(shí)例
今天小編就為大家分享一篇tensorflow 固定部分參數(shù)訓(xùn)練,只訓(xùn)練部分參數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-01-01
用python實(shí)現(xiàn)超強(qiáng)的加密軟件
大家好,本篇文章主要講的是用python實(shí)現(xiàn)超強(qiáng)的加密軟件,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01
Python實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)算法示例【基于反向傳播算法】
這篇文章主要介紹了Python實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)算法,結(jié)合實(shí)例形式分析了Python基于反向傳播算法實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
python實(shí)現(xiàn)的人臉識(shí)別打卡系統(tǒng)
這篇文章主要介紹了python實(shí)現(xiàn)的人臉識(shí)別打卡系統(tǒng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-05-05
Python 數(shù)據(jù)分析之Beautiful Soup 提取頁(yè)面信息
Beautiful Soup 提供一些簡(jiǎn)單的、python 式的函數(shù)用來(lái)處理導(dǎo)航、搜索、修改分析樹等功能。它是一個(gè)工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因?yàn)楹?jiǎn)單,所以不需要多少代碼就可以寫出一個(gè)完整的應(yīng)用程序2021-10-10
Python中print函數(shù)簡(jiǎn)單使用總結(jié)
在本篇文章里小編給大家整理的是關(guān)于Python中怎么使用print函數(shù)的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2019-08-08

