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匹配。
正则表达式组合非常多,在我们实际使用中自己再总结吧。
继续阅读与本文标签相同的文章
-
RocketMQ消息轨迹-设计篇
2026-05-18栏目: 教程
-
前端进阶|第七天 携程笔试题,嵌套数组去层级去重并排序
2026-05-18栏目: 教程
-
阿里巴巴“新六脉神剑”背后的故事
2026-05-18栏目: 教程
-
阿里巴巴20周年年会结束以后,你知道发生了什么吗?
2026-05-18栏目: 教程
-
13年IT老兵:闷头做智能家居体系容易走火入魔
2026-05-18栏目: 教程
