详解Python re.search.pattern函数:返回搜索的模式

  • Post category:Python

re模块是Python中用于正则表达式操作的模块,而re.search()方法是这个模块中最常用的方法之一。它的作用是在一个字符串中搜索匹配某个模式的子字符串,并返回一个匹配对象。re.search()的语法如下:

re.search(pattern, string, flags=0)

其中,pattern表示正则表达式的模式字符串,string是需要被匹配的字符串,flags是可选的匹配模式,默认为0。

下面是一些常用的匹配模式:

  • re.I or re.IGNORECASE : 忽略大小写的匹配
  • re.M or re.MULTILINE : 多行匹配,即可以匹配到每行的开头和结尾
  • re.S or re.DOTALL : 默认情况下.匹配除 \n 以外的任何字符。使用re.S或re.DOTALL可以匹配包括 \n 在内的任何字符。

现在,我们来看两个具体的例子。

例子一

假设我们需要检查一个字符串是否包含“apple”,并且还要忽略大小写。代码如下:

import re
text = "I have an Apple."
result = re.search(r"apple", text, re.I)
if result:
    print("Found "+result.group())
else:
    print("Not Found")

运行结果:

Found Apple

例子二

现在我们需要从一个字符串中提取所有的数字。代码如下:

import re
text = "My phone number is 123-456-7890."
result = re.findall(r"\d+", text)
print(result)

运行结果:

['123', '456', '7890']

上面的代码使用re.findall()方法,它会返回一个列表,其中包含了所有匹配到的子字符串。这里的模式字符串r”\d+”表示匹配一个或多个数字,\d表示匹配数字,而+号表示匹配一个或多个数字。