Python的re.match()和re.search()的使用和区别
生活随笔
收集整理的這篇文章主要介紹了
Python的re.match()和re.search()的使用和区别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.re.match()
re.match()的概念是從頭匹配一個(gè)符合規(guī)則的字符串,從起始位置開(kāi)始匹配,匹配成功返回一個(gè)對(duì)象,未匹配成功返回None。包含的參數(shù)如下:
- pattern: 正則模型
- string : 要匹配的字符串
- falgs : 匹配模式
match() 方法一旦匹配成功,就是一個(gè)match object對(duì)象,而match object對(duì)象有以下方法:
- group() 返回被 RE 匹配的字符串
- start() 返回匹配開(kāi)始的位置
- end() 返回匹配結(jié)束的位置
- span()返回一個(gè)元組包含匹配 (開(kāi)始,結(jié)束) 的位置
案例:
import re # re.match 返回一個(gè)Match Object 對(duì)象 # 對(duì)象提供了 group() 方法,來(lái)獲取匹配的結(jié)果 result = re.match("hello","hello,world") if result:print(result.group()) else:print("匹配失敗!")輸出結(jié)果:
hello
2.re.search()
re.search()函數(shù)會(huì)在字符串內(nèi)查找模式匹配,只要找到第一個(gè)匹配然后返回,如果字符串沒(méi)有匹配,則返回None。
格式:re.search(pattern, string, flags=0)
要求:匹配出文章閱讀的次數(shù)
import reret = re.search(r"\d+", "閱讀次數(shù)為 9999") print(ret.group())輸出結(jié)果:
9999
3.match()和search()的區(qū)別:
- match()函數(shù)只檢測(cè)RE是不是在string的開(kāi)始位置匹配,
- search()會(huì)掃描整個(gè)string查找匹配
- match()只有在0位置匹配成功的話才有返回,如果不是開(kāi)始位置匹配成功的話,match()就返回none
舉例說(shuō)明:
import re print(re.match('super', 'superstition').span())(0, 5)
print(re.match('super','insuperable'))None
print(re.search('super','superstition').span())(0, 5)
print(re.search('super','insuperable').span())(2, 7)
總結(jié)
以上是生活随笔為你收集整理的Python的re.match()和re.search()的使用和区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python中re.sub()实现替换文
- 下一篇: python中list和str互相转换