少说话多写代码之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匹配。

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


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

查看所有标签

猜你喜欢:

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

深入理解Java虚拟机

深入理解Java虚拟机

周志明 / 机械工业出版社 / 2011-6 / 69.00元

《深入理解Java虚拟机:JVM高级特性与最佳实践》内容简介:作为一位Java程序员,你是否也曾经想深入理解Java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,本书极尽化繁为简之妙,能带领你在轻松中领略Java虚拟机的奥秘。本书是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案......一起来看看 《深入理解Java虚拟机》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

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

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具