當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python re.search() vs re.match()用法及代碼示例


先決條件: Python正則表達式

使用re.search()和re.match()-
re.search()re.match()兩者都是repython中的模塊。這些函數對於在字符串中搜索非常有效且快速。該函數在字符串中搜索一些子字符串,如果找到則返回匹配對象,否則不返回。

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

結論:

  1. re.search()返回匹配對象,並暗示在索引69處找到第一個匹配項。
  2. re.match()由於字符串的第二行中存在匹配項而re不返回任何內容。re.match()僅在字符串的第一行中搜索。
  3. re.IGNORECASE用於忽略字符串中的區分大小寫。
  4. re.search()re.match()僅返回字符串中子字符串的第一次出現,而忽略其他子字符串。


相關用法


注:本文由純淨天空篩選整理自Deepak jain 123大神的英文原創作品 Python | re.search() vs re.match()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。