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