揭秘Python re模块:正则表达式的核心秘籍

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3.4k次,点赞86次,收藏15次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

什么是正则表达式?

正则表达式(Regular Expressions),简称为"regex"或"regexp",是用于从文本中查找和匹配字符串模式的一种强大工具。

如果你需要在一堆杂乱无章的线索中找到特定的信息。正则表达式就是你的工具,它帮助你定义一个模式,然后在这个模式的基础上去匹配、查找、替换或者分割文本。

在Python中,正则表达式通过re模块提供支持,它包含了一系列可以处理字符串的功能,如搜索、替换以及复杂的模式匹配。

图片

基础概念:
1.正则表达式组成

正则表达式由一系列字符组成,这些字符定义了搜索模式。比如,\d可以匹配任意一个数字,而\w可以匹配任意一个字母、数字或下划线。

2.re模块的核心函数
  1. 1. re.search(pattern, string): 在字符串中搜索匹配正则表达式的第一个位置,返回一个match对象。

  2. 2. re.match(pattern, string): 从字符串的起始位置匹配正则表达式,也返回一个match对象。

  3. 3. re.findall(pattern, string): 找到字符串中所有匹配正则表达式的模式,并以列表形式返回。

  4. 4. re.sub(pattern, repl, string): 替换字符串中的匹配项,repl可以是字符串或函数。

  5. 5. re.compile(pattern): 编译正则表达式模式,返回一个模式对象,用于复用。

案例解析:使用re模块实现具体功能

案例一:验证电子邮箱格式

import re

# 定义电子邮箱的正则表达式
email_pattern = r"^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$"

# 验证的电子邮箱
email = "example@domain.com"

# 使用re.match检查是否匹配
if re.match(email_pattern, email):
    print("有效的电子邮箱地址")
else:
    print("无效的电子邮箱地址")

案例二:提取URL中的域名

import re

# 定义URL的正则表达式
url_pattern = r"https?://(?:www\.)?(\w+)(\.\w+)"

# 要提取的URL
url = "https://www.example.com"

# 使用re.search查找匹配
match = re.search(url_pattern, url)
if match:
    print("域名:", match.group(1) + match.group(2))
else:
    print("没有找到匹配")

案例三:替换字符串中的敏感词汇

import re

# 定义需要替换的敏感词汇的正则表达式
pattern = r"敏感词汇"

# 待处理的字符串
text = "这是一个包含敏感词汇的句子。"

# 使用re.sub进行替换
safe_text = re.sub(pattern, "替换词汇", text)
print(safe_text)

图片

场景四:验证电话号码格式

电话号码格式在全球范围内多样化,但通常需要符合一定的数字组合规则。这里我们将展示如何使用Python的re模块来验证一个简单的国际电话号码格式(如:+123-456-7890)。

import re

# 定义电话号码的正则表达式
phone_pattern = r"^\+\d{3}-\d{3}-\d{4}$"

# 验证的电话号码
phone_number = "+123-456-7890"

# 使用re.match检查是否匹配
if re.match(phone_pattern, phone_number):
    print("电话号码格式正确")
else:
    print("电话号码格式不正确")

这个示例使用re.match()来检查电话号码是否符合预设的国际格式,提供了直接的反馈关于格式的正确性。

场景五:清洗文本中的HTML标签

在处理从网络抓取的数据时,经常需要从文本中去除HTML标签。使用正则表达式可以快速实现这一清洗过程。

import re

# 待清洗的带有HTML标签的文本
html_text = "<div>Hello, <b>world!</b> <br>Learn Python <i>regular expressions</i>.</div>"

# 定义删除HTML标签的正则表达式
clean_pattern = r"<.*?>"

# 使用re.sub移除HTML标签
clean_text = re.sub(clean_pattern, "", html_text)
print(clean_text)

图片

这个代码段通过re.sub()函数,使用一个匹配所有HTML标签的正则表达式来清洗文本,使其只包含纯文本内容。这对于文本分析和处理尤其有用,去除可能影响解析的标签元素。

常见正则表达式速查表

  • • \d:匹配一个数字

  • • \w:匹配一个字母、数字或下划线

  • • ^:匹配字符串的开始

  • • $:匹配字符串的结束

  • • *:匹配前面的字符零次或多次

  • • +:匹配前面的字符一次或多次

  • • ?:匹配前面的字符零次或一次

  • • {n,m}:匹配前面的字符至少n次,至多m次

  • • []:字符集,匹配括号内的任意一个字符

  • • |:逻辑或,匹配左边或右边的模式

  • • ():分组,将多个字符或模式组合成一个单元

通过上述示例,我们展示了re模块在实际应用中的强大功能。无论是数据清洗、日志分析还是自然语言处理,都有广泛的应用场景。

掌握正则表达式及其在Python中的应用,可以极大地提升数据处理和文本分析的效率。re模块的功能远不止上述所示,深入学习和实践将帮助您解锁更多高级功能。

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

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

​​​软件测试面试文档

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

在这里插入图片描述

在这里插入图片描述

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值