【python进阶】_正则表达式
常见语法
点--匹配所有字符
.
表示要匹配除了 换行符
之外的任何 单个
字符。
星号--重复匹配任意次
*
表示匹配前面的子表达式任意次,包括0次。
加号--重复匹配多次
+
表示匹配前面的子表达式一次或多次,不包括0次。
问号--匹配0-1次
?
表示匹配前面的子表达式0次或1次
花括号--匹配指定次数
表达式 油{3}
就表示匹配 连续的 油 字 3次
表达式 油{3,4}
就表示匹配 连续的 油 字 至少3次,至多 4 次
贪婪模式与非贪婪模式
在正则表达式中, ‘*’, ‘+’, ‘?’ 都是贪婪地,使用他们时,会尽可能多的匹配内容
解决这个问题,就需要使用非贪婪模式,也就是在星号后面加上 ?
匹配某种字符类型
反斜杠后面接一些字符,表示匹配 某种类型
的一个字符。
\d 匹配0-9之间任意一个数字字符,等价于表达式 [0-9]
\D 匹配任意一个不是0-9之间的数字字符,等价于表达式 [^0-9]
\s 匹配任意一个空白字符,包括 空格、tab、换行符等,等价于表达式 [\t\n\r\f\v]
\S 匹配任意一个非空白字符,等价于表达式 [^ \t\n\r\f\v]
\w 匹配任意一个文字字符,包括大小写字母、数字、下划线,等价于表达式 [a-zA-Z0-9_]
缺省情况也包括 Unicode文字字符,如果指定 ASCII 码标记,则只包括ASCII字母
\W 匹配任意一个非文字字符,等价于表达式 [^a-zA-Z0-9_ ]
反斜杠也可以用在方括号里面,比如 [\s,.] 表示匹配 : 任何空白字符, 或者逗号,或者点
方括号--匹配几个字符之一
方括号表示要匹配 指定的几个字符之一 ,比如
[abc]
可以匹配 a, b, 或者 c 里面的任意一个字符。等价于 [a-c]
。
[a-c]
中间的 - 表示一个范围从a 到 c。
如果你想匹配所有的小写字母,可以使用 [a-z]
如果在方括号中使用 ^
, 表示 非
方括号里面的字符集合,比如
[^\d]
表示,选择非数字的字符
起始、结尾位置、和单行、多行模式
^
表示匹配文本的 开头
位置。
正则表达式可以设定 单行模式
和 多行模式
如果是 单行模式
,表示匹配 整个文本
的开头位置。
如果是 多行模式
,表示匹配 文本每行
的开头位置。
$
表示匹配文本的 结尾
位置。
如果是 单行模式
,表示匹配 整个文本
的结尾位置。
如果是 多行模式
,表示匹配 文本每行
的结尾位置。
p = re.compile(r'^\d+', re.M),注意,compile 的第二个参数 re.M ,指明了使用多行模式
竖线--匹配其中之一
竖线在正则表达式的优先级是最低的, 这就意味着,竖线隔开的部分是一个整体
比如 绿色|橙
表示 要匹配是 绿色
或者 橙
,
而不是 绿色
或者 绿橙
括号--分组
括号称之为 正则表达式的 组选择。
组
就是把 正则表达式 匹配的内容 里面 其中的某些部分
标记为某个组。
【python进阶】_正则表达式相关推荐
- Python 进阶_生成器 生成器表达式
目录 目录 相关知识点 生成器 生成器 fab 的执行过程 生成器和迭代器的区别 生成器的优势 加强的生成器特性 生成器表达式 生成器表达式样例 小结 相关知识点 Python 进阶_迭代器 & ...
- python进阶18正则表达式
原创博客链接:python进阶18正则表达式 正则基础知识 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ^`:匹配行首 `$`:匹配结尾 `*`:( ...
- Python进阶之正则表达式
1. 关于正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用 ...
- Python 进阶_闭包 amp; 装饰器
目录 目录 闭包 函数的实质和属性 闭包有什么好处 小结 装饰器 更加深入的看看装饰器的执行过程 带参数的装饰器 装饰器的叠加 小结 装饰器能解决什么问题 小结 闭包 Closure: 如果内层函数引 ...
- Python 进阶_模块 包
目录 文章目录 目录 模块的搜索路径和路径搜索 命名空间和变量作用域的比较 变量名的查找/覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模 ...
- Python 进阶_函数式编程
目录 目录 函数式编程 Python 函数式编程的特点 高阶函数 匿名函数 lambda 函数式编程相关的内置函数 filter 序列对象过滤器 map reduce 折叠 自定义的排序函数 最后 函 ...
- Python 进阶_闭包 装饰器
目录 目录 闭包 函数的实质和属性 闭包有什么好处 小结 装饰器 更加深入的看看装饰器的执行过程 带参数的装饰器 装饰器的叠加 小结 装饰器能解决什么问题 小结 闭包 Closure: 如果内层函数引 ...
- Python 进阶_模块 amp; 包
目录 目录 模块的搜索路径和路径搜索 搜索路径 命名空间和变量作用域的比较 变量名的查找覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模块 ...
- python进阶_基础篇4(数据类型和列表)
数据类型和列表 内容回顾(基础篇三) 1:if条件 应用场景: 1)if 单分支: 满足条件执行某个操作,不满足就不执行 2)if 双分支: 满足条件执行某个操作,不满足执行另一个操作 3)if 多分 ...
- python进阶_基础篇10(函数进阶,列表推导式)
函数进阶 函数就是变量 定义函数的时候,其实就是在定义一个类型时function的变量,函数名就是变量名 普通变量能做的事情,函数都可以做 print('===================1.函数 ...
最新文章
- cuSPARSELt开发NVIDIA Ampere结构化稀疏性
- javaweb学习总结(三十一)——国际化(i18n)
- Win10:tensorflow学习笔记(4)
- IFrame标签的两个用法介绍
- Java ObjectInputStream enableResolveObject()方法与示例
- 最好的Linux C/C++ IDE Windows ALL IDE,第一效率,第零浪漫
- nodejs进程异常退出处理方法
- 260.只出现一次的数字III
- 一个北京妞儿写的经典的话,太现实了!
- 爬虫日记之05两种Web请求渲染过程(附图解和网站实例)
- 什么是软件形式化方法?
- 学 Python 的乐园,坚持一年,值了!
- MACOS Terminal终端:更改zsh模式到bash模式(切换shell)
- 从零开始Bootstrap教程
- c语言计算圆的周长和面积double,符号常量,浮点数(计算圆的周长和面积) | 新思维:C语言程序设计...
- python计算召回率_机器学习之分类:精确率和召回率
- 科学计算模块Numpy-初级 (2)
- es6转es5 在线转换工具
- 使用 免费可商用的中文字体 解决CentOS Linux下Java生成图片水印中文乱码问题
- python输入十个数求最大值_python输入十个数如何输出最大值
热门文章
- PAT甲级1116 Come on! Let‘s C:[C++题解]哈希表、素数
- PAT甲级1073 Scientific Notation:[C++题解]字符串处理、科学计数法
- Mysql可视化工具Navicat中文版下载和报错解决
- curd boy 入门
- python画旺仔代码_美术生把旺仔牛奶画成抖音网红,看清画的是谁,网友:确认过眼神...
- android中仿qq最新版抽屉,Android 自定义View实现抽屉效果
- pandas 排序一个变量
- 驱动进化之路:总线设备驱动模型
- 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...
- 江苏省计算机专业公务员,江苏省考冷门专业的“春天”来了!