文章目录
- 元字符使用
- 匹配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全面性,尽可能考虑到目标字符串的所有情况,不遗漏
猜你喜欢
- 1月前(a级景区评定机构)全国A级旅游景区创建与提升培训班在敦煌市举办
- 1月前(四川率先建立“双定向”基层文化人才职称评审通道机制)四川率先建立“双定向”基层文化人才职称评审通道机制
- 1月前(七尚酒店百度百科)Lohkah七尚酒店首度开创充满新知的闽地研学旅程
- 1月前(福朋喜来登酒店宴会厅)福朋喜来登品牌亮相北部湾城市群 阳江中心福朋喜来登酒店开业
- 1月前(东北地区全域旅游)东北三省一区宣传贯彻研学旅游行业标准
- 1月前(甘肃文旅项目)甘肃省文旅产业链招商引资推介会在天水成功举办
- 1月前(新西兰航空官方网站)新西兰航空85周年焕新启航 全方位客舱升级,飞「悦」快意时光
- 1月前(新西兰“空降”上海:新西兰旅游局邀请你来“玩真的”!)新西兰“空降”上海:新西兰旅游局邀请你来“玩真的”!
- 1月前(当科学邂逅喜剧:科技馆喜剧嘉年华背后的"文旅破壁者")当科学邂逅喜剧:科技馆喜剧嘉年华背后的"文旅破壁者"
- 1月前(冬日生活还没安排?上抖音一键打包北方花式过冬精彩)冬日生活还没安排?上抖音一键打包北方花式过冬精彩
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章