正则表达式 小甲鱼.doc

正则表达式 小甲鱼.doc

ID:59374391

大小:40.00 KB

页数:11页

时间:2020-09-04

正则表达式 小甲鱼.doc_第1页
正则表达式 小甲鱼.doc_第2页
正则表达式 小甲鱼.doc_第3页
正则表达式 小甲鱼.doc_第4页
正则表达式 小甲鱼.doc_第5页
资源描述:

《正则表达式 小甲鱼.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、正则表达式介绍(一)正则表达式(Regularexpressions也称为REs,或regexes或regexpatterns)本质上是一个微小的且高度专业化的编程语言。它被嵌入到Python中,并通过re模块提供给程序猿使用。使用正则表达式,你需要指定一些规则来描述那些你希望匹配的字符串集合。这些字符串集合可能包含英语句子、e-mail地址、TeX命令,或任何你想要的东东。正则表达式模式被编译成一系列的字节码,然后由一个C语言写的匹配引擎所执行。对于高级的使用,你可能需要更关注匹配引擎是如何执行给定的RE,并通过一定的方式来编写RE,以便产生一个可以运行得更快的字节码。本文暂不讲解优化的细节

2、,因为这需要你对匹配引擎的内部机制有一个很好的理解。但本文的例子均是符合标准的正则表达式语法。小甲鱼注释:Python的正则表达式引擎是用C语言写的,所以效率是极高的。另,所谓的正则表达式,这里说的RE,就是上文我们提到的“一些规则”。正则表达式语言相对较小,并且受到限制,所以不是所有可能的字符串处理任务都可以使用正则表达式来完成。还有一些特殊的任务,可以使用正则表达式来完成,但是表达式会因此而变得非常复杂。在这种情况下,你可能通过自己编写Python代码来处理会更好些;尽管Python代码比一个精巧的正则表达式执行起来会慢一些,但可能会更容易理解。小甲鱼注释:这可能是大家常说的“丑话说在前”

3、吧,大家别管他,正则表达式非常优秀,她可以处理你98.3%的文本任务,一定要好好学哦~~~~~简单的模式我们将从最简单的正则表达式学习开始。由于正则表达式常用于操作字符串的,因此我们从最常见的任务下手:字符匹配。字符匹配大多数字母和字符会匹配它们自身。举个例子,正则表达式 FishC 将完全匹配字符串 "FishC"。(你可以启用不区分大小写模式,这将使得 FishC 可以匹配 "FISHC" 或 "fishc",我们会在后边讨论这个话题。)当然这个规则也有例外。有少数特殊的字符我们称之为元字符(metacharacter),它们并不能匹配自身,它们定义了字符类、子组匹配和模式重复次数等。本文

4、用很大的篇幅专门讨论了各种元字符及其作用。下边是元字符的完整列表(我们将在后边逐一讲解):.  ^  $  *  +  ?  {}  []    

5、  ()小甲鱼注释:如果没有这些元字符,正则表达式就变得跟字符串的find()方法一样平庸了......我们先来看下方括号 [],它们指定一个字符类用于存放你需要匹配的字符集合。可以单独列出需要匹配的字符,也可以通过两个字符和一个横杆 - 指定匹配的范围。例如 [abc] 会匹配字符 a,b 或 c;[a-c] 可以实现相同的功能。后者使用范围来表示与前者相同的字符集合。如果你想只匹配小写字母,你的RE可以写成 [a-z]。需要注意的一点是:元字符

6、在方括号中不会触发“特殊功能”,在字符类中,它们只匹配自身。例如 [akm$] 会匹配任何字符 'a','k','m' 或 '$','$' 是一个元字符,但在方括号中它不表示特殊含义,它只匹配 '$' 字符本身。你还可以匹配方括号中未列出的所有其他字符。做法是在类的开头添加一个脱字符号 ^ ,例如 [^5] 会匹配除了 '5' 之外的任何字符。或许最重要的元字符当属反斜杠  了。跟Python的字符串规则一样,如果在反斜杠后边紧跟着一个元字符,那么元字符的“特殊功能”也不会被触发。例如你需要匹配符号 [ 或 ,你可以在它们前面加上一个反斜杠,以消除它们的特殊功能:[,。反斜杠后边跟一些字符还

7、可以表示特殊的意义,例如表示十进制数字,表示所有的字母或者表示非空白的字符集合。小甲鱼解释:反斜杠真牛逼,反斜杠后边跟元字符去除特殊功能,反斜杠后边跟普通字符实现特殊功能。让我们来举个例子:w 匹配任何字符。如果正则表达式以字节的形式表示,这相当于字符类 [a-zA-Z0-9_];如果正则表达式是一个字符串,w 会匹配所有Unicode数据库(unicodedata模块提供)中标记为字母的字符。你可以在编译正则表达式的时候,通过提供re.ASCII表示进一步限制 w 的定义。小甲鱼解释:re.ASCII标志使得w只能匹配ASCII字符,不要忘了,Python3是Unicode的。下边列举一些反

8、斜杠加字符构成的特殊含义:特殊字符含义d匹配任何十进制数字;相当于类 [0-9]D与 d 相反,匹配任何非十进制数字的字符;相当于类 [^0-9]s匹配任何空白字符(包含空格、换行符、制表符等);相当于类 [tnrfv]S与 s 相反,匹配任何非空白字符;相当于类 [^tnrfv]w匹配任何字符,见上方解释W于 w 相反b匹配单词的开始或结束B与 b 相反它们可以包含在一个字符类中,并且一样拥有特

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。