📜  Python| re.search() 与 re.match()

📅  最后修改于: 2022-05-13 01:54:56.283000             🧑  作者: Mango

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

结论 :

  1. re.search()正在返回匹配对象,并暗示在索引 69 处找到第一个匹配项。
  2. re.match()返回 none 因为 match 存在于字符串的第二行,并且 re.match() 仅在字符串的开头找到 match 时才有效。
  3. re.IGNORECASE用于忽略字符串中的大小写敏感性。
  4. re.search()re.match()都只返回字符串中第一次出现的子字符串,而忽略其他的。