常见语法

点--匹配所有字符

   . 表示要匹配除了 换行符 之外的任何 单个 字符。

星号--重复匹配任意次

    * 表示匹配前面的子表达式任意次,包括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进阶】_正则表达式相关推荐

  1. Python 进阶_生成器 生成器表达式

    目录 目录 相关知识点 生成器 生成器 fab 的执行过程 生成器和迭代器的区别 生成器的优势 加强的生成器特性 生成器表达式 生成器表达式样例 小结 相关知识点 Python 进阶_迭代器 & ...

  2. python进阶18正则表达式

    原创博客链接:python进阶18正则表达式 正则基础知识 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ^`:匹配行首 `$`:匹配结尾 `*`:( ...

  3. Python进阶之正则表达式

    1. 关于正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用 ...

  4. Python 进阶_闭包 amp; 装饰器

    目录 目录 闭包 函数的实质和属性 闭包有什么好处 小结 装饰器 更加深入的看看装饰器的执行过程 带参数的装饰器 装饰器的叠加 小结 装饰器能解决什么问题 小结 闭包 Closure: 如果内层函数引 ...

  5. Python 进阶_模块 包

    目录 文章目录 目录 模块的搜索路径和路径搜索 命名空间和变量作用域的比较 变量名的查找/覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模 ...

  6. Python 进阶_函数式编程

    目录 目录 函数式编程 Python 函数式编程的特点 高阶函数 匿名函数 lambda 函数式编程相关的内置函数 filter 序列对象过滤器 map reduce 折叠 自定义的排序函数 最后 函 ...

  7. Python 进阶_闭包 装饰器

    目录 目录 闭包 函数的实质和属性 闭包有什么好处 小结 装饰器 更加深入的看看装饰器的执行过程 带参数的装饰器 装饰器的叠加 小结 装饰器能解决什么问题 小结 闭包 Closure: 如果内层函数引 ...

  8. Python 进阶_模块 amp; 包

    目录 目录 模块的搜索路径和路径搜索 搜索路径 命名空间和变量作用域的比较 变量名的查找覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模块 ...

  9. python进阶_基础篇4(数据类型和列表)

    数据类型和列表 内容回顾(基础篇三) 1:if条件 应用场景: 1)if 单分支: 满足条件执行某个操作,不满足就不执行 2)if 双分支: 满足条件执行某个操作,不满足执行另一个操作 3)if 多分 ...

  10. python进阶_基础篇10(函数进阶,列表推导式)

    函数进阶 函数就是变量 定义函数的时候,其实就是在定义一个类型时function的变量,函数名就是变量名 普通变量能做的事情,函数都可以做 print('===================1.函数 ...

最新文章

  1. cuSPARSELt开发NVIDIA Ampere结构化稀疏性
  2. javaweb学习总结(三十一)——国际化(i18n)
  3. Win10:tensorflow学习笔记(4)
  4. IFrame标签的两个用法介绍
  5. Java ObjectInputStream enableResolveObject()方法与示例
  6. 最好的Linux C/C++ IDE Windows ALL IDE,第一效率,第零浪漫
  7. nodejs进程异常退出处理方法
  8. 260.只出现一次的数字III
  9. 一个北京妞儿写的经典的话,太现实了!
  10. 爬虫日记之05两种Web请求渲染过程(附图解和网站实例)
  11. 什么是软件形式化方法?
  12. 学 Python 的乐园,坚持一年,值了!
  13. MACOS Terminal终端:更改zsh模式到bash模式(切换shell)
  14. 从零开始Bootstrap教程
  15. c语言计算圆的周长和面积double,符号常量,浮点数(计算圆的周长和面积) | 新思维:C语言程序设计...
  16. python计算召回率_机器学习之分类:精确率和召回率
  17. 科学计算模块Numpy-初级 (2)
  18. es6转es5 在线转换工具
  19. 使用 免费可商用的中文字体 解决CentOS Linux下Java生成图片水印中文乱码问题
  20. python输入十个数求最大值_python输入十个数如何输出最大值

热门文章

  1. PAT甲级1116 Come on! Let‘s C:[C++题解]哈希表、素数
  2. PAT甲级1073 Scientific Notation:[C++题解]字符串处理、科学计数法
  3. Mysql可视化工具Navicat中文版下载和报错解决
  4. curd boy 入门
  5. python画旺仔代码_美术生把旺仔牛奶画成抖音网红,看清画的是谁,网友:确认过眼神...
  6. android中仿qq最新版抽屉,Android 自定义View实现抽屉效果
  7. pandas 排序一个变量
  8. 驱动进化之路:总线设备驱动模型
  9. 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...
  10. 江苏省计算机专业公务员,江苏省考冷门专业的“春天”来了!