re正则表达式
Posted dragonbird
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re正则表达式相关的知识,希望对你有一定的参考价值。
正则表达式
re regular expression ,regex,RE
正则表达式是用来简洁表达一组字符串的表达式,正则表达式是一种针对字符串表达“简洁”和“特征”的工具。
用途:
- 表达文本类型的特征
- 同时查找或替换一组字符串
- 匹配字符串的全部或部分 最主要应用于字符串的匹配
Python导入re库
import re
正则表达式的使用,需要编译
编译:将符合正则表达式语法的字符串转换成正则表达式特征
re.compile()
常用表达式
re库的使用
re库使用raw string(原生字符串)来表示正则表达式,表示为:
r\'text\'
原生字符串:不包含对转义符再次转义的字符串
re库的主要功能函数
re.search() 返回match对象
re.match ,从字符串开头进行匹配,返回match对象
re.findall 返回列表对象,返回全部符合匹配的子串
re.finditer 返回一个匹配结果的迭代类型,每一个迭代类型都是一个match对象
re.split() 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.search(pattern,string,flags=0)
pattern:正则表达式的字符串或者原生字符串表示
string:待匹配的字符串
flags:正则表达式的使用的控制标记 re.I :忽视大小写 re.M :吧字符串的每一行当做开头进行匹配 re.S 操作符匹配所有字符,默认匹配除换行符之外的所有字符。
re库的另一种等价用法:
regex=re.compile(r\'[1-9]\\d{5}\')
regex.search(\'BIT 100081\')
等价于
rst=re.search(r\'[1-9]\\d{5}\',\'BIT 100081\')
分组()
?P<> 给分组起名字
?: 取消分组的优先级
import re print(re.findall("<(?P<tag_name>\\w+)>\\w+</(?P=tag_name)>","<h1>hello</h1>")) print(re.search("<(?P<tag_name>\\w+)>\\w+</(?P=tag_name)>","<h1>hello</h1>")) r=re.findall(r"<(?:\\w+)>\\w+</\\w+>","<h1>hello</h1>") print(r) 》》》[\'h1\'] 》》》<_sre.SRE_Match object; span=(0, 14), match=\'<h1>hello</h1>\'> 》》》[\'<h1>hello</h1>\']
以上是关于re正则表达式的主要内容,如果未能解决你的问题,请参考以下文章