博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 正则表达式(基础)
阅读量:4042 次
发布时间:2019-05-24

本文共 926 字,大约阅读时间需要 3 分钟。

Python正则表达式定义

正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串,或者是在指定的文章中,抓取特定的字符串等。python处理正则表达式的模块是re模块,它是Python语言拥有全部的正则表达式功能。

正则表达式由一些普通字符和一些元字符组成。普通字符包括大小写的字母、数字和打印符号,而元字符则是具有特殊含义的字符。

正则表达式结构:

锚定符(^和$) 字符集 修饰符

如果在正则表达式中不加锚定符,就会整行匹配。

正则表达式匹配的流程:
2

正则表达式大致的匹配过程是:拿正则表达式依次和字符串或者文本中的字符串做比较,如果每一个字符都能匹配,则匹配成功,只要有一个匹配不成功的字符则匹配不成功。

Python中支持正则的元字符

Python中支持正则表达式元字符与其他语言有些不同,不过大部分都是相同的,下面是Python中支持正则表达式的元字符表:

这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述

完整的正则表达式模式

模式字符串使用特殊的语法来表示一个正则表达式。

  • 字母和数字匹配它们自身。
  • 多数字母和数字前加一个反斜杠(\)时会有特殊的含义。
  • 特殊的标点符号,只有被转义以后才能匹配自身。
  • 反斜杠本身需要反斜杠来转义。

注意:

  • 由于正则表达式通常包含反斜杠等特殊字符,所以我们最好使用原始字符串来表示它们。如r’\d’,等价于’\\d’,表示匹配一个数字。
  • Python正则表达式中,数量词默认都是贪婪的,它会尽可能多的去匹配满足的字符,但是如果我们在后面加上“?”,就可以屏蔽贪婪模式,表示匹配尽可能少的字符。如字符串:”xyyyyzs”,使用正则“xy*”去匹配时,就会得到“xyyyy”;如果使用正则“xy*?”,将只匹配“x”。

正则表达式修饰符(可选标志)

正则表达式可以包含一些可选标志修饰符来控制匹配模式。修饰符被指定为一个可选的标志,用在正则表达式处理函数中的flag参数中。多个标志可以通过按位OR(|)它们来指定。如re.I | re.M 被设置成 I 和 M 标志,表示同时有效。这些修饰符一般都用在正则表达式处理函数中。

这里写图片描述

你可能感兴趣的文章
JasperReports Server on Cloud Foundry
查看>>
Cloud Foundry中基于Master/Slave机制的Service Gateway——解决Service Gateway单点故障问题
查看>>
iReport+JasperReports Server开发过程的Troubleshooting
查看>>
Cloud Foundry中通用service的集成
查看>>
Cloud Foundry中 JasperReports service集成
查看>>
Cloud Foundry中vmc tunnel与caldecott原理
查看>>
ConcurrentHashMap面试详解
查看>>
深拷贝和浅拷贝
查看>>
java集合框架
查看>>
CMS垃圾回收器和G1垃圾回收器区别
查看>>
菜鸟学习Python之数据类型
查看>>
菜鸟学Python之面向对象
查看>>
MFC中combobox中的addstring 报错问题
查看>>
MFC中对话框向视图类的数据发送
查看>>
关于TRIANGLE二维三角网格生成器在windows下的配置说明
查看>>
计算机图形几何算法详解勘误
查看>>
OpenGL MSAA多采样中的蒙版(stencil)使用
查看>>
glm::mat4 要求 16 对齐的形参将不被对齐
查看>>
C++面试之虚函数
查看>>
C++面试之堆栈
查看>>