Python从0到100(二十四):正则表达式的应用

在这里插入图片描述

正则表达式是一种用于字符串搜索和操作的强大工具,它允许你使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在编程中,正则表达式被广泛应用于文本处理,如模式搜索、文本替换、字符串验证等。

1.正则表达式基础

正则表达式由一系列符号组成,每个符号都有特定的含义。以下是一些常见的正则表达式符号及其含义:

符号解释示例说明
.匹配任意单个字符b.t可以匹配 bat, but, b#t, b1t 等
\w匹配任意字母、数字或下划线b\wt可以匹配 bat, b1t, b_t 等,但不能匹配 b#t
\s匹配任意空白字符love\syou可以匹配 “love you”
\d匹配任意数字\d\d可以匹配 01, 23, 99 等
\b单词边界\bThe\b匹配 “The” 作为单词出现的情况
^字符串开始位置^The匹配以 “The” 开始的字符串
$字符串结束位置.exe$匹配以 “.exe” 结束的字符串
更多符号和解释

2.Python对正则表达式的支持

Python通过内置的re模块提供了对正则表达式的全面支持。以下是re模块的一些核心函数:

函数说明
compile编译正则表达式,返回正则表达式对象
match匹配字符串的开始部分
search搜索字符串中第一次出现的模式
split根据模式分隔符拆分字符串
sub替换字符串中的模式
findall查找字符串中所有匹配的模式
finditer查找字符串中所有匹配的模式,返回迭代器
fullmatch匹配整个字符串
purge清除正则表达式缓存
re.IGNORECASE忽略大小写匹配
更多功能和标记

3.实例演示

例子1:验证用户名和QQ号

import reusername = input("请输入用户名: ")
qq = input("请输入QQ号: ")# 验证用户名(6-20位字母、数字或下划线)
if not re.match(r"^[0-9a-zA-Z_]{6,20}$", username):print("用户名无效,请重新输入。")# 验证QQ号(5-12位数字,首位不能为0)
if not re.fullmatch(r"[1-9]\d{4,11}", qq):print("QQ号无效,请重新输入。")if re.match(r"^[0-9a-zA-Z_]{6,20}$", username) and re.fullmatch(r"[1-9]\d{4,11}", qq):print("输入有效!")

例子2:提取手机号码

import re# 正则表达式匹配国内手机号码
pattern = re.compile(r'(?<=\D)1[34578]\d{9}(?=\D)')
sentence = "联系方式:13800138000"
phones = re.findall(pattern, sentence)
for phone in phones:print(phone)

例子3:替换不良内容

import retext = "This is a bad word: F*** it."
cleaned_text = re.sub(r'\bbad\b', 'good', text)
print(cleaned_text)

例子4:拆分字符串

import retext = "One, two. Three, four. Five."
words = re.split(r'[,.]', text)
print(words)

4.总结

正则表达式是一个非常强大的工具,可以帮助你在编程中处理复杂的字符串匹配和操作任务。虽然开始时可能会觉得有些难度,但随着实践的增加,你会越来越熟悉它的使用。不要忘了利用在线工具来测试和调试你的正则表达式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/703745.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Edge(微软)——一款充满创新精神的浏览器

随着科技的不断进步&#xff0c;互联网浏览器已经成为我们日常生活中不可或缺的工具。在这个领域&#xff0c;微软Edge作为一款新型的浏览器&#xff0c;凭借其独特的功能和优秀的性能&#xff0c;逐渐在市场上占据了一席之地。本文将深入探索微软Edge的特点、优势以及它如何改…

【MySQL 数据宝典】【事务锁】- 002 事务控制的演进

一、事务处理思路 1.1 排队 排队处理是事务管理最简单的方法&#xff0c;就是完全顺序执行所有事务的数据库操作&#xff0c;不需要加锁&#xff0c;简单的说就是全局排队。序列化执行所有的事务单元&#xff0c;数据库某个时刻只处理一个事务操作&#xff0c;特点是强一致性…

测缝计测量的是实际缝宽吗?

在土木工程中&#xff0c;测缝计作为一种重要的监测工具&#xff0c;广泛应用于桥梁、隧道、大坝等大型结构中&#xff0c;用以测量和监控结构接缝或裂缝的实际宽度变化。然而&#xff0c;有些人可能会产生疑问&#xff1a;测缝计测量的是实际缝宽吗?本文将对这一问题进行深入…

六西格玛管理培训对企业有哪些实际帮助?

当下&#xff0c;企业要想脱颖而出&#xff0c;不仅要有创新思维和敏锐的市场洞察力&#xff0c;更要有高效的管理体系和严谨的质量控制手段。而六西格玛管理培训正是这样一项能够帮助企业实现提质增效、提升竞争力的关键举措。那么&#xff0c;六西格玛管理培训对企业究竟有哪…

亲子失和最大的内耗是:家长总是“说硬话,办软事”!

一声爸妈&#xff0c;一辈子的责任&#xff0c;操不完的心、做不完的事。 然而&#xff0c;爱太满&#xff0c;注定会溢出。爱有边界&#xff0c;我们是父母&#xff0c;更是自己&#xff01; 01 前些时候悠悠起床又开始混账了&#xff01; 气愤的是&#xff0c;周末休息那…

MES系统在电线电缆行业生产上的应用

MES系统在线缆行业的应用可以带来多重价值&#xff0c;包括提高生产效率、降低生产成本、提高产品质量、优化库存管理、改善生产环境和提高企业竞争力等方面。因此&#xff0c;在电线电缆行业中广泛应用MES系统可以提高企业的经济效益和社会效益&#xff0c;推动企业发展和行业…

平芯微PW4056HH中文规格书

概述 PW4056HH 是一款完整的采用恒定电流/恒定电压的高压、大电流、单节锂离子电池线性充电 IC。充电电流可达 1A。输入 MAX 低工作电压 3.75V&#xff0c;降低充电功耗&#xff0c;提高效率。 PW4056HH 采用了内部 PMOS 架构&#xff0c;加上防反充电路&#xff0c;不需要外部…

Lumina-T2X 一个使用 DiT 架构的内容生成模型,可通过文本生成图像、视频、多视角 3D 对象和音频剪辑。

Lumina-T2X 是一个新的内容生成系列模型&#xff0c;统一使用 DiT 架构。通过文本生成图像、视频、多视角 3D 对象和音频剪辑。 可以在大幅提高生成质量的前提下大幅减少训练成本&#xff0c;而且同一个架构支持不同的内容生成。图像质量相当不错。 由 50 亿参数的 Flag-DiT …

HL7协议

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.介绍2.传输协议规范2.1. MLLP2.1.1. 数据头定义2.1.2. 转义字符集 2.2. 规范说明2.3. 消息格式说明 3.HL7结构介绍3.1. 患者建档&#xff08;ADT^A28&#xff09;…

webpack5零基础入门-14提取css为单独文件

1.背景 Css文件目前被打包到JS文件中&#xff0c;当JS文件加载时&#xff0c;会尝试创建一个style标签来生成样式&#xff0c;这样对于网站来说&#xff0c;会出现闪屏的现象&#xff0c;用户体验不好。我们应该是单独的Css文件&#xff0c;通过link标签来加载性能才好。 2.下…

好烦啊,我真的不想写增删改查了!

大家好&#xff0c;我是程序员鱼皮。 很想吐槽&#xff1a;我真的不想写增删改查这种重复代码了&#xff01; 大学刚做项目的时候&#xff0c;就在写增删改查&#xff0c;万万没想到 7 年后&#xff0c;还在和增删改查打交道。因为增删改查是任何项目的基础功能&#xff0c;每…

BUUCTF靶场[MISC]荷兰宽带数据泄露、九连环

[MISC]荷兰宽带数据泄露 考点&#xff1a;查看路由器恢复丢失密码的文件 工具&#xff1a;RouterPassView——路由器密码查看工具 工具链接&#xff1a;https://routerpassview.en.lo4d.com/windows RouterPassView是一款老牌的路由器密码查看器&#xff0c;可以一键获取路…