当前位置: 首页 > article >正文

python正则表达式大全

Python中的正则表达式(Regular Expressions)是一种强大的文本处理工具,它使用特殊的字符序列来定义搜索模式,这些模式可以匹配、搜索、替换字符串中的文本。Python的re模块提供了对正则表达式的支持。

以下是一些常用的Python正则表达式元字符和模式的大致概览,但请注意,这远非一个完整的大全,因为正则表达式的可能性和组合几乎是无限的。

基本元字符

  • .:匹配除换行符以外的任意字符。
  • ^:匹配字符串的开始。
  • $:匹配字符串的末尾。
  • *:匹配前面的子表达式零次或多次。
  • +:匹配前面的子表达式一次或多次。
  • ?:匹配前面的子表达式零次或一次。
  • {n}:n 是一个非负整数。匹配确定的 n 次。
  • {n,}:n 是一个非负整数。至少匹配 n 次。
  • {n,m}:m 和 n 均为非负整数,其中 n <= m。最少匹配 n 次且最多匹配 m 次。

字符类

  • [xyz]:字符集合。匹配所包含的任意一个字符。
  • [^xyz]:负值字符集合。匹配未包含的任意字符。
  • [a-z]:字符范围。匹配指定范围内的任意字符。
  • [A-Z]:同上,但匹配大写字母。
  • [0-9]:匹配任何数字。等价于\d
  • \D:匹配任何非数字字符。等价于[^0-9]
  • \w:匹配包括下划线的任何单词字符。等价于[A-Za-z0-9_]
  • \W:匹配任何非单词字符。等价于[^A-Za-z0-9_]

边界匹配器

  • \b:匹配一个单词边界,即字与空格间的位置。
  • \B:非单词边界匹配。

分组和捕获

  • (...):捕获匹配的子串。
  • (?:...):非捕获分组,即匹配但不捕获匹配的文本。
  • (?P<name>...):命名捕获组,可以通过组名访问匹配的文本。

断言

  • (?=...):正向前瞻断言。此位置之后能够匹配表达式。
  • (?!...):负向前瞻断言。此位置之后不能够匹配表达式。
  • (?<=...):正向后顾断言。此位置之前能够匹配表达式。
  • (?<!...):负向后顾断言。此位置之前不能够匹配表达式。

示例

  • 匹配邮箱地址:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • 匹配IP地址:((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
  • 匹配HTML标签:<[^>]+>

正则表达式的强大之处在于其灵活性和表达能力,但这也意味着它们可能变得非常复杂和难以理解,特别是对于复杂的模式。因此,在使用正则表达式时,建议从简单开始,逐步构建更复杂的模式。同时,利用在线正则表达式测试工具来调试和测试你的表达式也是一个好习惯。


http://www.kler.cn/a/292128.html

相关文章:

  • ubuntu将firewall-config导出为.deb文件
  • Redis下载历史版本
  • nginx源码安装配置ssl域名
  • MySQL Online DDL
  • Opengl光照测试
  • Javascript_设计模式(二)
  • 21.新增管理员页面制作
  • 9月5日复盘日记
  • pytorch计算张量中三维向量的欧式距离
  • WWDG—窗口看门狗
  • Claude的小白入门指南
  • 无人机之摄像头篇
  • Aspose.PDF功能演示:在 C# 中将 JPG 图像合并为 PDF
  • 网络压缩之网络剪枝(network pruning)
  • C#中ArrayList
  • 安卓aosp14上自由窗口划线边框Freeform Caption实战开发-千里马framework实战
  • HttpUtils工具类(三)OKHttpClient使用详细教程
  • vue项目中利用后端接口返回的视频地址获取第一帧作为数据封面展示
  • 【赵渝强老师】大数据主从架构的单点故障
  • HTTPS SEO优势
  • EmguCV学习笔记 VB.Net 第10章 人脸识别
  • elementplus组件库el-tree组件设置默认选中项setCheckKeys不生效
  • Mysql5.6.51修改密码
  • Ubuntu: 配置OpenCV环境
  • ITK-高斯滤波
  • 数据库中的逐行数据处理