什么是正则表达式
正则表达式注意问题数量词的贪婪模式与非贪婪模式
例如:正则表达式”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])的结果,第二个为匹配的子串个数。
到目前为止正则表达式基本知识介绍完毕
领取专属 10元无门槛券
私享最新 技术干货