python中的match和search的区别
生活随笔
收集整理的這篇文章主要介紹了
python中的match和search的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對比
match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]):
- 這個方法將從string的pos下標處起嘗試匹配pattern:
- 如果pattern結束時仍可匹配,則返回一個Match對象
- 如果匹配過程中pattern無法匹配,或者匹配未結束就已到達endpos,則返回None。
- pos和endpos的默認值分別為0和len(string)。
注意:這個方法并不是完全匹配。當pattern結束時若string還有剩余字符,仍然視為成功。想要完全匹配,可以在表達式末尾加上邊界匹配符’$’。
search(string[, pos[, endpos]]) | re.search(pattern, string[, flags]):
- 這個方法從string的pos下標處起嘗試匹配pattern
- 如果pattern結束時仍可匹配,則返回一個Match對象
- 若無法匹配,則將pos加1后重新嘗試匹配,直到pos=endpos時仍無法匹配則返回None。
- pos和endpos的默認值分別為0和len(string))
總結
match()從指定的位置匹配到結尾,必須開頭一模一樣的對應,search()也是在指定的位置匹配到結尾,但是,只要在這個區間里有匹配就行,不用嚴格的限制開頭一一對應,具體可以看實例:
import re
pattern = re.compile(r'hello.*!')
# 開頭有個'a',match()匹配不上,但是search()可以匹配上
match = pattern.match('ahello, peter! How are you?')
match1 = pattern.search('ahello, peter! How are you?')if match:print(match.group())
else:print("None match")
if match1:print(match1.group())
else:print("None match1")
總結
以上是生活随笔為你收集整理的python中的match和search的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言函数传参时候的类型强制装换
- 下一篇: 利用c语言找出输入文本最长的一行