文章目录
- 元字符使用
- 匹配1个
- 匹配字符重复
- 匹配字符串开始位置
- 匹配字符串的结束位置
- 匹配(非)单词的边界位置
- 或关系
- 特殊字符匹配
- 贪婪模式和非贪婪模式
- 正则表达式分组
- 函数使用
- 返回match对象
- 正则表达式匹配原则
定义
文本的高级匹配模式,本质是由一系列字符和特殊符号构成的字串,这个字串即正则表达式
原理
通过普通字符和有特定含义的字符,来组成字符串,用以描述一定的字符串规则
类别 元字符 匹配字符 . […] [^…] \d \D \w \W \s \S 匹配重复 * + ? {n} {m,n} 匹配位置 ^ $ \b \B 其他 | () \ 元字符使用
匹配1个
普通字符
匹配规则: 每个普通字符匹配其对应的字符
元字符: .
匹配规则: 匹配除换行外的任意一个字符
匹配字符集
元字符: [字符集]
匹配规则: 匹配字符集中的任意一个字符
字符集内空格、区间、普通字符都可
匹配字符集反集
元字符:[^字符集]
匹配规则:匹配除了字符集以外的任意一个字符
匹配字符重复
元字符: *
匹配规则: 匹配前面的字符出现0次或多次
元字符: +
匹配规则: 匹配前面的字符出现1次或多次
元字符: ?
匹配规则: 匹配前面的字符出现0次或1次
元字符: {n}
匹配规则: 匹配前面的字符出现n次
元字符: {m,n}
匹配规则: 匹配前面的字符出现m-n次
匹配任意(非)数字字符
元字符: \d \D
匹配规则: \d匹配任意数字字符,\D匹配任意非数字字符
匹配任意(非)普通字符
元字符: \w \W
匹配规则: \w匹配普通字符,\W匹配非普通字符
说明: 普通字符指数字,字母,下划线,utf-8字符
匹配任意(非)空字符
元字符: \s \S
匹配规则: \s匹配空字符, \S匹配非空字符
说明: 空字符指空格\r \n \t \v \f字符
匹配字符串开始位置
元字符: ^
匹配规则: 匹配目标字符串的开头位置
匹配字符串的结束位置
元字符: $
匹配规则:匹配目标字符串的结尾位置
匹配(非)单词的边界位置
元字符: \b \B
匹配规则: \b表示单词边界,\B表示非单词边界
说明: 单词边界指数字字母(汉字)下划线与其他字符的交界位置
或关系
元字符:|
匹配规则:匹配|两侧任意的正则表达式即可
特殊字符匹配
如果匹配的目标字符串中包含正则表达式特殊字符,
则在表达式中元字符就想表示其本身含义时就需要进行\处理
特殊字符: . * + ? ^ $ [] () {} | \
贪婪模式和非贪婪模式
贪婪模式:默认情况下,匹配重复的元字符总是尽可能多的向后匹配内容。比如:* + ? {m,n}
非贪婪模式:让匹配重复的元字符尽可能少的向后匹配内容
正则表达式分组
在正则表达式中,以()建立正则表达式的内部分组,子组是正则表达式的一部分,可以作为内部整体操作对象。
作用:可以被作为整体操作,改变元字符的操作对象
import re result = re.search('(ab)+',"ababab") print(result.group()) print(result.span())
捕获组
捕获组本质也是一个子组,只不过拥有一个名称用以表达该子组的意义,这种有名称的子组即为捕获组
格式:(?P
pattern) 注意
子组序列号一般从外到内,从左到右计数
函数使用
re.findall(pattern,string)
功能: 根据正则表达式匹配目标字符串内容
参数: pattern 正则表达式
string 目标字符串
返回值: 匹配到的内容列表,如果正则表达式有子组则只能获取到子组对应的内容
re.split(pattern,string,max)
功能: 使用正则表达式匹配内容,切割目标字符串
参数: pattern 正则表达式
string 目标字符串
max 最多切割几部分
返回值: 切割后的内容列表
re.sub(pattern,replace,string,count)
功能: 使用一个字符串替换正则表达式匹配到的内容
参数: pattern 正则表达式
replace 替换的字符串
string 目标字符串
count 最多替换几处,默认替换全部
返回值:替换后的字符串
返回match对象
re.finditer(pattern,string)
功能: 根据正则表达式匹配目标字符串内容
参数: pattern 正则表达式
string 目标字符串
返回值: 匹配结果的迭代器
re.search(pattern,string)
功能: 匹配目标字符串第一个符合的内容
参数: pattern 正则
string 目标字符串
返回值: 匹配内容match object
re.match(pattern,string)
功能:匹配某个目标字符串开始位置
参数:pattern 正则
string 目标字符串
返回值:匹配内容match object
正则表达式匹配原则
1正确性,能够正确的匹配出目标字符串
2排他性,除了目标字符串外尽可能少的匹配其他内容
3全面性,尽可能考虑到目标字符串的所有情况,不遗漏
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章