📅  最后修改于: 2023-12-03 14:46:45.323000             🧑  作者: Mango
在Python中,使用正则表达式对字符串进行匹配和操作是一个非常强大的功能。其中,re.search()
和re.findall()
是两个非常常用的函数。
re.search()
主要用于在字符串中搜索匹配正则表达式的第一个位置,并返回一个match
对象。
下面是一个简单的示例,对字符串中的数字进行匹配:
import re
str = "I am 28 years old."
match = re.search(r'\d+', str)
if match:
print("Match found at position %d." % match.start())
else:
print("Match not found.")
代码运行结果:
Match found at position 7.
在这个例子中,\d+
表示匹配一个或多个数字。re.search()
函数在字符串中查找匹配这个正则表达式的第一个位置,找到了数字28,并返回一个match
对象。
如果匹配到了结果,则match
对象中会包含以下信息:
string
:被搜索的原始字符串;re
:使用的正则表达式;pos
:开始搜索的起点;endpos
:结束搜索的终点;span()
:返回一个元组,包含匹配的起始位置和结束位置。re.findall()
与re.search()
的区别在于,它会搜索整个字符串,并返回所有匹配的结果列表。
下面是一个示例,使用re.findall()
匹配字符串中所有的数字:
import re
str = "I am 28 years old. My weight is 60 kg."
matches = re.findall(r'\d+', str)
print(matches)
代码运行结果:
['28', '60']
使用re.findall()
函数可以很方便地获取字符串中所有符合要求的数据,比如我们可以非常方便地从一个网页的源代码中提取全部的URL链接。
re.search()
和re.findall()
是两个非常常用的正则表达式函数,它们在匹配/搜索字符串时都起到了非常重要的作用。需要根据具体的需求选择使用哪一个函数,以达到最佳的效果。