私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第7单元 正则表达式

第7单元 正则表达式 python
第7单元 正则表达式

本单元知识点 >7.1概述 >7.2为何需要使用正列表达式 >7.3正则表达式的语法 >7.4在Python中使用正则表达式 >7.5捕获 >7.6贪婪与非贪梦模式 >7.7典型案例
本单元知识点 ➢ 7.1 概述 ➢ 7.2 为何需要使用正则表达式 ➢ 7.3 正则表达式的语法 ➢ 7.4 在Python中使用正则表达式 ➢ 7.5 捕获 ➢ 7.6 贪婪与非贪婪模式 ➢ 7.7 典型案例

7.1概述 正则表达式:又称规侧表达式,实际上是一个“文本模式”,通过一个字符 序列来定义一种搜索模式,主要用于字符串模式匹配或字符串匹配(即查找 和替换操作)。一个正则表达式由字母、数字和一些特殊符号组成,这些符 号的序列组成一个“规则字符串”,用来表示满足某种逻辑条件的字符串。 给定一个正则表达式和一个普通字符串,我们可以: 判断普通字符串(或其子串)是否符合正则表达式所定义的逻辑(字符串与 正则表达式是否匹配);从字符串中提取或替换某些特定部分
7.1 概述 正则表达式:又称规则表达式,实际上是一个“文本模式”,通过一个字符 序列来定义一种搜索模式,主要用于字符串模式匹配或字符串匹配(即查找 和替换操作)。一个正则表达式由字母、数字和一些特殊符号组成,这些符 号的序列组成一个“规则字符串”,用来表示满足某种逻辑条件的字符串。 给定一个正则表达式和一个普通字符串,我们可以: 判断普通字符串(或其子串)是否符合正则表达式所定义的逻辑(字符串与 正则表达式是否匹配);从字符串中提取或替换某些特定部分

许多编程语言都对正则表达式提供了不同程度的支持,图7-1展示了使用 正则表达式进行匹配的流程。 正则表达式文本 编译 正则表达式对象 匹配 待匹配文本 匹配结果 图7-1正则表达式匹配流程
许多编程语言都对正则表达式提供了不同程度的支持,图7-1展示了使用 正则表达式进行匹配的流程。 图7-1 正则表达式匹配流程

7.2为何需要使用正则表达式 通过使用正则表达式,可以: 1、测试字符串内的模式。 例如,可以测试输入字符串,查看字符串内是否出现电话号码模式或信用卡号 码模式。这称为数据验证。 2、替换文本。 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文 本替换它。 3、基于模式匹配从字符串中提取子字符串。 4、可以查找文档内或输入域内特定的文本
7.2 为何需要使用正则表达式 通过使用正则表达式,可以: 1、测试字符串内的模式。 例如,可以测试输入字符串,查看字符串内是否出现电话号码模式或信用卡号 码模式。这称为数据验证。 2、替换文本。 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文 本替换它。 3、基于模式匹配从字符串中提取子字符串。 4、可以查找文档内或输入域内特定的文本

7.3正则表达式的语法 正则表达式(regular expression)由普通字符(例如字符a到z)和一些特殊字符 (元字符metacharacters)组成的文本模式。模式描述在搜索文本时要匹配的 个或多个字符串。正则表达式作为一个模式,将某个字符模式与所搜索的字符串进 行匹配。元字符是正则表达式中具有特殊含义的字符,用来匹配一个或者若干个满 足某种条件的字符。这些元字符是构成正则表达式的关键要素。 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算 符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是弟 个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。 面分类列出最常用的元字符及其含义
7.3 正则表达式的语法 正则表达式(regular expression)由普通字符(例如字符a到z)和一些特殊字符 (元字符metacharacters)组成的文本模式。模式描述在搜索文本时要匹配的一 个或多个字符串。正则表达式作为一个模式,将某个字符模式与所搜索的字符串进 行匹配。元字符是正则表达式中具有特殊含义的字符,用来匹配一个或者若干个满 足某种条件的字符。这些元字符是构成正则表达式的关键要素。 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算 符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单 个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。下 面分类列出最常用的元字符及其含义

7.3.1 python中的字符 普通字符包括没有显式指定为元字符的所有可打印和不可打印 字符。这包括所有大写和小写字母、所有数字、所有标点符号 和一些其他符号
7.3.1 python中的字符 普通字符包括没有显式指定为元字符的所有可打印和不可打印 字符。这包括所有大写和小写字母、所有数字、所有标点符号 和一些其他符号

1非打印字符 非打印字符也可以是正则表达式的组成部分。下表列出了表示 非打印字符的转义序列: 字符 描述 \Cx 匹配由x指明的控制字符。例如:,\cM匹配,个Control-M或回车符。X的值 必须为A-Z或a-z之一。否测,将c视为一个原义的'c字符。 匹配一个换页符。等价于\x0c和\cL。 n 匹配一个换行符。等价于\x0a和\cJ。 \r 匹配一个回车符。等价于\xOd和\cM。 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\fAn八tv]。 注意Unicode正则表达式会匹配全角空格符。 IS 匹配任何非空白字符。等价于[A\n小八t扒。 t 匹配一个制表符。等价于\x09和\cl。 v 匹配一个垂直制表符。等价于\xO6和\cK
1.非打印字符 非打印字符也可以是正则表达式的组成部分。下表列出了表示 非打印字符的转义序列: 字符 描述 \cx 匹配由x指明的控制字符。例如: \cM 匹配一个 Control-M 或回车符。x 的值 必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 \f 匹配一个换页符。等价于 \x0c 和 \cL。 \n 匹配一个换行符。等价于 \x0a 和 \cJ。 \r 匹配一个回车符。等价于 \x0d 和 \cM。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 注意 Unicode 正则表达式会匹配全角空格符。 \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \t 匹配一个制表符。等价于 \x09 和 \cI。 \v 匹配一个垂直制表符。等价于 \x0b 和 \cK

2.特殊字符 所谓特殊字符,就是一些有特殊含义的字符,如字符串ZUno。b中的*,简单的说 就是表示任何字符串的意思。如果要查找字符串中的*符号,则需要对*进行转义, 即在其前加一个:Zuno*ob匹配zuno*ob。 特殊字符 描述 匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则$也匹配\n或 八。要匹配$字符本身,请使用\$。 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使 用(和)。 匹配前面的子表达式零次或多次。要匹配*字符,请使用\*。 + 匹配前面的子表达式一次或多次。要匹配+字符,请使用\+。 匹配除换行符\之外的任何单字符。要匹配.,请使用\.。 标记一个中括号表达式的开始。要匹配[,请使用\【。 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配?字符,请使用\?。 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如,'匹 配字符''。n匹配换行符。序列V'匹配",而\'则匹配"。 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要 匹配A字符本身,请使用\个。 标记限定符表达式的开始。要匹配{,请使用。 指明两项之间的一个选择。要匹配1,请使用\|
2.特殊字符 所谓特殊字符,就是一些有特殊含义的字符,如字符串 zunoo*b 中的 *,简单的说 就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义, 即在其前加一个 \: zuno\*ob 匹配zuno*ob。 特殊字符 描述 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使 用 \( 和 \)。 * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \* 。 + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 . 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。 [ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ?字符,请使用 \?。 \ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹 配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要 匹配 ^ 字符本身,请使用 \^。 { 标记限定符表达式的开始。要匹配 {,请使用 \{。 | 指明两项之间的一个选择。要匹配 |,请使用 \|

3.数量限定符 字符 描述 匹配前面的子表达式零次或多次。例如,go*能匹配"g”,"go"以及"goo”。*等 价于0。 匹配前面的子表达式一次或多次。例如,g0+能匹配"go”以及"g0o”,但不能匹 配"g"。+等价于{10 匹配前面的子表达式零次或一次。例如,“go?"可以匹配“g"以及“g0”,但不能匹 配"goo"。?等价于{01}。 n是一个非负整数。用来匹配前面的字符串n次。例如,'o2不能匹配"Bob"中 的'o',但是能匹配food'中的两个o。 n,} n是一个非负整数。至少匹配n次。例如,'o2}不能匹配"Bob”中的'o,但能匹 配"foooood”中的所有o。'o1,}等价于'o+。'o0}则等价于'o*。 (n,m) m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如, “ab1,3}”能匹配“ab”或“abbb”但不能匹配“abbbb”。'o0,1y'等价于 “o?'。请注意在逗号和两个数之间不能有空格
3.数量限定符 字符 描述 * 匹配前面的子表达式零次或多次。例如,go* 能匹配 "g" ,”go”以及 "goo"。* 等 价于{0,}。 + 匹配前面的子表达式一次或多次。例如,go+' 能匹配 "go" 以及 "goo",但不能匹 配 "g"。+ 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。例如,“go?” 可以匹配 “g”以及“go” ,但不能匹 配”goo”。? 等价于 {0,1}。 {n} n是一个非负整数。用来匹配前面的字符串 n 次。例如,'o{2}' 不能匹配 "Bob" 中 的 'o',但是能匹配 "food" 中的两个 o。 {n,} n是一个非负整数。至少匹配n次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹 配 "foooood" 中的所有o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 {n,m} m和n 均为非负整数,其中n <= m。最少匹配n次且最多匹配m次。例如, “ab{1,3}” 能匹配“ab”或“abbb”,但不能匹配“abbbb” 。‘o{0,1}’ 等价于 ‘o?'。请注意在逗号和两个数之间不能有空格
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第6单元 用函数实现代码复用.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第12单元 实战——用Python玩微信.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第11单元 Python的模块使用与程序打包.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第10单元 Python异常处理.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第5单元 Python程序的流程控制.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第4单元 Python的组合数据类型.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第3单元 Python字符串输入输出.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第2单元 Python基础知识.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第1单元 初识Python的世界(负责人:尹菡).pptx
- 《Python语言程序设计》课程教学资源(教案讲义)Python学习参考教材(共十一单元).pdf
- 私立华联学院:《Python语言程序设计》课程教学资源(实习实验)Python编程基础实验指导手册.pdf
- 《Python语言程序设计》课程教学资源(拓展资源)零基础Python上手编程(2020版).pdf
- 《Python语言程序设计》课程教学资源(拓展资源)Python练习实例(Python 100例).pdf
- 私立华联学院:《Python语言程序设计》课程教学资源(教案讲义)课程教学设计(负责人:尹菡).pdf
- 私立华联学院:《Python语言程序设计》课程教学资源(教案讲义)课程标准(适用专业:软件技术).pdf
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第四章 数组.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第六章 指针.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第八章 文件.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第五章 函数.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第七章 结构体和共同体.ppt
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第8单元 面向对象编程.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第9单元 文件操作.pptx
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)课程标准(主讲:沈秀珍).pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第一章 Illustrator基础知识.pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第二章 绘图基本操作.pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第三章 绘图着色操作.pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第五章 应用图层与剪切蒙板.pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第四章 编辑与管理对象.pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第七章 创建与处理文本.pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第六章 应用画笔和效果与图形样式.pdf
- 私立华联学院:《Illustrator计算机辅助设计》课程教学资源(课件讲稿)第八章 Illustrator综合应用.pdf
- 私立华联学院:《云计算技术与应用基础》课程教学资源(教案讲义)课程标准.pdf
- 私立华联学院:《云计算技术与应用基础》课程教学资源(教案讲义)教学设计.pdf
- 私立华联学院:《云计算技术与应用基础》课程教学资源(试卷习题)云计算基础测试卷.doc
- 私立华联学院:《云计算技术与应用基础》课程教学资源(试卷习题)云计算基础测试答案.doc
- 私立华联学院:《云计算技术与应用基础》课程教学资源(试卷习题)第1章 云概述.doc
- 私立华联学院:《云计算技术与应用基础》课程教学资源(试卷习题)第2章 云标准.doc
- 私立华联学院:《云计算技术与应用基础》课程教学资源(试卷习题)第3章 云存储.doc
- 私立华联学院:《云计算技术与应用基础》课程教学资源(试卷习题)第4章 云服务.doc
- 私立华联学院:《云计算技术与应用基础》课程教学资源(试卷习题)第5章 云桌面.doc