python学习 正则表达式

什么是正则表达式

正则表达式注意问题数量词的贪婪模式与非贪婪模式

例如:正则表达式”ab”如果用于查找”abbbc”,将找到”abbb”。

而如果使用非贪婪的数量词”ab?”,将找到”a”。

*表示匹配前一个字符0个或多个,加上?后匹配前一个字符0个或1个,使匹配规则变为非贪婪。

转义问题

由于字符串中出现特殊字符要采取转义,采用’\’可以进行转义。如果字符串中出现’\’,需要采用’\‘才可以转义为’\’,

Python里的原生字符串很好地解决了这个问题,在字符串前加上r,表示原生字符串,不用考虑转义问题。

看下面的例子:

使用原生字符串不用写转义的’\’了。

正则表达式的应用举例

2 可以实现split切割字符串

3 对匹配规则进行分组

4 贪婪匹配和非贪婪匹配

5 编译生成pattern再匹配

match 的另一种写法是这样的

re.compile返回值包含如下属性和函数:

属性:

函数:

除此之外还有其他的几个函数

search方法与match方法极其类似,区别在于match()函数只检测re是不是在string的开始位置匹配,search()会扫描整个string查找匹配

7 re.findall(pattern, string[, flags])

搜索string,以列表形式返回全部能匹配的子串。

搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器

使用repl替换string中每一个匹配的子串后返回替换后的字符串,首先根据pattern在string中匹配,找到子串返回列表,然后根据repl规则,

替换列表中的字符串。

返回 一个tuple,tuple两个元素,第一个为re.sub(pattern, repl, string[, count])的结果,第二个为匹配的子串个数。

到目前为止正则表达式基本知识介绍完毕

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171212G0SK7C00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券