当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。