少说话多写代码之Python学习064——标准模块(正则表达式)

栏目: Python · 发布时间: 5年前

内容简介:Python中re模块包含的是对正则表达式的支持。正则表达式是一个很有趣,对处理字符串作用比较大,我们可以花一点时间了解一下。正则表达式是可以匹配文本片段的一组规则。最简单的正则表达式就是一个字符串,能匹配自身。比如字符串a='迢递嵩高下,归来且闭关',可以匹配字符串b='迢递嵩高下,归来且闭关'。下面我们简单看看正则表达式的一些基本规则。

Python中re模块包含的是对正则表达式的支持。正则表达式是一个很有趣,对处理字符串作用比较大,我们可以花一点时间了解一下。

正则表达式是可以匹配文本片段的一组规则。最简单的正则表达式就是一个字符串,能匹配自身。比如字符串a='迢递嵩高下,归来且闭关',可以匹配字符串b='迢递嵩高下,归来且闭关'。

下面我们简单看看正则表达式的一些基本规则。

1、通配符

正则表达式中一些特殊字符可以匹配多个字符串。比如点号(.),可以匹配任意字符,出换行符外。正则表达式c=.饭,可以匹配'早饭','晚饭','吃饭'等。.号可以匹配任意字符,因此叫做通配符。

2、特殊字符转义

在正则表达式中如果将特殊字符当作普通字符会遇到问题。比如,需要匹配字符串'python.py',直接用的话,会匹配到'pythonapy'。因为.号是通配符,可以匹配任何字符。为了让特殊字符和普通字符一样,需要将其转义。一般是加反斜杠,比如'python\\.py',这样就只能匹配'python.py'了。

3、字符集

匹配任意字符,范围太大了,我们有时需要缩小范围。可以使用中括号中括住的的字符串来作为指定范围,这个叫字符集。字符集可以匹配包括中的任意字符。,比如 '[胜败]乃兵家常事' ,可以匹配, '胜乃兵家常事''败乃兵家常事' 。比如我们用[a-z]可以匹配小写a至z的所有字符。

也可以使用逻辑非,比如 '[^我滴神]' ,表示除:我、滴、神这三个字符外其他都满足条件。

4、选择符和子模式

如果我们想匹配比如 '道不同不相为谋''道德经' ,此时不能使用通配符和字符集了,可以使用一种可以选择的字符:(|),这样写 '道不同不相为谋|道德经'

有时候,不需要对整个字符串使用选择运算符,而只需要一部分。这时使用圆括号括起来需要的部分,称之为子模式。比如,上面例子可写为

'道(不同不相为谋|德经)'。

5、可选项和重复子模式

在上面的子模式后面加上?号,就变为可选项。比如这段,

'(黄河)?(长江)?之水天上来'

可匹配:

黄河之水天上来

长江之水天上来

黄河长江之水天上来

天上来

6、字符串开始和结尾

匹配时如果我们知道这个字符的位置是开头还是结尾,那么效率会大大提高。比如,只想在开头位置匹配'我',会这样写'^我',会匹配到 '我言秋日胜春朝' ,但是不会匹配到 '弃我去者,昨日之日不可留' 。另外还有一些匹配的例子,比如我们平时的网址www开头,可以用w+匹配。http可以用ht+p匹配。

正则表达式组合非常多,在我们实际使用中自己再总结吧。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

.net之美

.net之美

张子阳 / 机械工业出版社 / 2014-1-1 / 79

本书是.NET 程序员进阶修炼的必读之作,由拥有多年开发经验的资深.NET 技术专家对C# 和.NET 中实用的、关键的和难以理解的知识点进行了深入解析,旨在帮助读者在尽可能短的时间内以 尽可能低的学习成本去掌握那些最应该被掌握的知识。书中的每个知识点都辅之以精心设计的案例,易 于理解,实践性强。 全书共17 章,分为两个部分:第一部分(1~5 章)主要讲解了C# 语言中的一些关键知识点,如......一起来看看 《.net之美》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试