先決條件: Python正則表達式
使用re.search()和re.match()-
re.search()
和re.match()
兩者都是re
python中的模塊。這些函數對於在字符串中搜索非常有效且快速。該函數在字符串中搜索一些子字符串,如果找到則返回匹配對象,否則不返回。
re.search()和re.match()-
兩種函數的使用有所不同。兩者都返回字符串中找到的子字符串的第一個匹配項,但是re.match()
僅在字符串的第一行中搜索,如果找到則返回匹配對象,否則不返回。但是,如果在字符串的第一行以外的其他其他行中找到子字符串的匹配項(對於multi-line字符串),則不返回任何內容。
而re.search()
即使字符串包含multi-lines,也會搜索整個字符串,並嘗試在字符串的所有行中找到子字符串的匹配項。
例:
# import re module
import re
Substring ='string'
String ='''We are learning regex with geeksforgeeks
regex is very useful for string matching.
It is fast too.'''
# Use of re.search() Method
print(re.search(Substring, String, re.IGNORECASE))
# Use of re.match() Method
print(re.match(Substring, String, re.IGNORECASE))
輸出:
<_sre.SRE_Match object; span=(69, 75), match='string'> None
結論:
-
re.search()
返回匹配對象,並暗示在索引69處找到第一個匹配項。 re.match()
由於字符串的第二行中存在匹配項而re不返回任何內容。re.match()僅在字符串的第一行中搜索。re.IGNORECASE
用於忽略字符串中的區分大小寫。- 都
re.search()
和re.match()
僅返回字符串中子字符串的第一次出現,而忽略其他子字符串。
相關用法
注:本文由純淨天空篩選整理自Deepak jain 123大神的英文原創作品 Python | re.search() vs re.match()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。