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

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

内容简介: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匹配。

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


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

查看所有标签

猜你喜欢:

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

Bulletproof Web Design

Bulletproof Web Design

Dan Cederholm / New Riders Press / 28 July, 2005 / $39.99

No matter how visually appealing or packed with content a Web site is, it isn't succeeding if it's not reaching the widest possible audience. Designers who get this guide can be assured their Web site......一起来看看 《Bulletproof Web Design》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

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

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具