python正则是什么

更新时间:02-08 教程 由 孤魂 分享

Python大星掏出了秘密武器--《正则心法》

学会这门独门武器,在“爬者”境界下将如探囊取物

“宫廷玉液酒,一百八一杯,这酒怎么样,看我给你吹”。

先看下正则测试小工具,一般人我不告诉他

http://tool.oschina.net/regex/

小试牛刀:

是不是很神奇...

来来来,Python大星传授你一套《正则心法》

图1

图2

考验你悟性的时候

从《正则心法》中我们可以看到:

“斜杠+小写字母”和“斜杠+大写字母”语义相反

含大写字母的一般是否定语句

这些字母不需要死记硬背,背后都有其自然规律

实在记不住,点击收藏

作为"爬虫英语四级”的老玩家,小case

w---world

s---space

d---digital

接下来

我会依次展示《正则心法》的奥秘之处

好的“心法”必须衬好的“武器”

re库了解哈

“正则心法”第一式--match

当我们用《正则心法》第一式获取到匹配数据,

你以为就over了吗?

刁钻需求的任务:提取匹配数据中的数字

^:匹配一行字符串的开头

\s:匹配空格

\d+:匹配1个或多个数字

在正则表达式中使用英文括号()

group()和group(0)会提取完整的匹配结果

group(1)会匹配第一个括号中的子字符串

假如正则表达式后面还有()包括的内容,那么可以依次用group(2)、group(3)等来获取

“正则心法”第二式--通用匹配

Python大星纵览群书,发现个重大密码

通配符无一例外的使用.*

“正则心法”第三式--贪婪与非贪婪

●什么是贪婪匹配?

在贪婪匹配下,.会匹配尽可能多的字符

括号中是\d+,

也就是至少一个数字,并没有指定具体多少个数字,

因此,.*就尽可能匹配多的字符,这里就把123456匹配了,

给\d+留下一个可满足条件的数字7,最后得到的内容就只有数字7了。

●什么又是非贪婪匹配?

非贪婪匹配就是尽可能匹配少的字符

非贪婪匹配的写法是.*?

贪婪匹配就是匹配尽可能多的字符

非贪婪匹配就是匹配尽可能少的字符

“正则心法”第四式--修饰符

当content中含有换行符或者大小写时

需要红蓝buff加持--“修饰符”

跟随Python先打红buff--re.S(匹配包括换行在内的所有字符)

1234567

再打蓝buff--re.I(使匹配对大小写不敏感,注意:I是i的大写)

1234567

“正则心法”第五式--转义匹配

说到“转义字符”,万金油“斜杠”来表示

“正则心法”第六式--search

前面五式,我们使用的match方法是从字符串的开头开始匹配的,

一旦开头不匹配,那么整个匹配就失败了

Python大星传授你新的一招--search

在匹配时,search方法会依次扫描字符串,直到找到第一个符合规则的字符串,然后返回匹配内容,如果搜索完了还没有找到,就返回None。

“正则心法”第七式--findall

第六式我们能轻松的用search方法获取匹配正则表达式的第一个内容

但是...

当我想要匹配所有符合正则表达式的所有内容呢?

['1234567','7654321']

“正则心法”第八式--sub

除了使用正则表达式提取信息外,有时候还需要借助它来修改文本

Python

“正则心法”第九式--compile

最后,Python传授毕生功力

准备好接收了吗?

将正则字符串编译成正则表达式对象,以便在后面的匹配中复用

呼气,吸气,收!!!

这套《正则心法》你get到了吗?

声明:关于《python正则是什么》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2155752.html