Python| re.search() 与 re.match()
先决条件: Python中的正则表达式
re.search()和re.match()都是Python中 re 模块的函数。这些函数对于在字符串中搜索非常有效和快速。该函数在字符串中搜索某个子字符串,如果找到则返回匹配对象,否则不返回。
这两种功能的使用是有区别的。两者都返回在字符串中找到的子字符串的第一个匹配项,但re.match()仅从字符串的开头搜索,如果找到则返回匹配对象。但是如果在字符串中间的某处找到匹配的子字符串,则返回无。
虽然re.search()搜索整个字符串,即使字符串包含多行并尝试在 string 的所有行中找到子字符串的匹配项。
例子 :
Python3
# import re module
import re
Substring ='string'
String1 ='''We are learning regex with geeksforgeeks
regex is very useful for string matching.
It is fast too.'''
String2 ='''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, String1, re.IGNORECASE))
# Use of re.match() Method
print(re.match(Substring, String1, re.IGNORECASE))
# Use of re.search() Method
print(re.search(Substring, String2, re.IGNORECASE))
# Use of re.match() Method
print(re.match(Substring, String2, re.IGNORECASE))
输出 :
None
结论 :
- re.search()正在返回匹配对象,并暗示在索引 69 处找到第一个匹配项。
- re.match()返回 none 因为 match 存在于字符串的第二行,并且 re.match() 仅在字符串的开头找到 match 时才有效。
- re.IGNORECASE用于忽略字符串中的大小写敏感性。
- re.search()和re.match()都只返回字符串中第一次出现的子字符串,而忽略其他的。