软件测试|深入理解Python中的re.search()和re.findall()区别

发布时间:2024年01月20日
前言

在Python中,正则表达式是一种强大的工具,用于在文本中查找、匹配和处理模式。re?模块提供了许多函数来处理正则表达式,其中?re.search()和?re.findall()?是常用的两个函数,用于在字符串中查找匹配的模式。本文将深入介绍这两个函数的用法,以及详细的使用示例。

re.search() 函数

re.search()?函数用于在字符串中查找匹配的第一个子串,并返回一个匹配对象。如果找到了匹配,可以通过匹配对象的方法和属性来获取相关信息。

import re
 
pattern = r'apple'
text = "I have an apple and a banana."
 
# 在文本中查找第一个匹配的子串
match = re.search(pattern, text)
 
if match:
    print("Found:", match.group())  # 获取匹配的子串
    print("Start:", match.start())  # 获取匹配的起始位置
    print("End:", match.end())      # 获取匹配的结束位置
else:
    print("No match found.")
 
re.findall() 函数

re.findall()?函数用于在字符串中查找所有匹配的子串,并返回一个包含所有匹配结果的列表。

import re
 
pattern = r'\d+'  # 匹配一个或多个数字
text = "I have 3 apples and 5 bananas. Total 8 fruits."
 
# 查找所有匹配的子串
matches = re.findall(pattern, text)
 
if matches:
    print("Matches:", matches)  # 获取所有匹配的子串列表
else:
    print("No matches found.")
 
使用示例
  1. 使用?re.search()?查找日期
import re
 
pattern = r'\d{2}-\d{2}-\d{4}'  # 匹配日期格式:dd-mm-yyyy
text = "Today's date is 31-08-2023."
 
match = re.search(pattern, text)
 
if match:
    print("Date found:", match.group())
else:
    print("No date found.")
 

使用?re.findall()?查找所有链接

import re
 
pattern = r'https?://\S+'  # 匹配HTTP或HTTPS链接
text = "Here are some links: https://www.example.com and http://google.com"
 
links = re.findall(pattern, text)
 
if links:
    print("Links found:", links)
else:
    print("No links found.")

  1. 使用?re.findall()?查找电子邮件地址
import re
 
pattern = r'\w+@\w+\.\w+'  # 匹配基本电子邮件地址
text = "Contact us at support@example.com or info@company.net"
 
emails = re.findall(pattern, text)
 
if emails:
    print("Email addresses found:", emails)
else:
    print("No email addresses found.")

总结

re.search()?用于查找第一个匹配的子串,而?re.findall()?则用于查找所有匹配的子串。通过在正则表达式模式中定义适当的规则,使得我们可以有效地在文本中查找并处理各种模式。这两个函数是处理文本匹配和搜索的重要工具,在文本处理和数据提取中非常有用。

最后:?下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

文章来源:https://blog.csdn.net/m0_65111097/article/details/135715972
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。