咱们书接上回,上次已经讲完了正则里面的最常用的函数,compile和findall,今天我们讲剩下的几个函数,虽然使用频率不高,但是各有所长,废话少说,那我就开始我的表演了
老规矩,点赞,转发分享再读,不然后续怎么输出精彩干货
3.re.sub函数(中等)
作用:完成两个动作,1查找;2替换,用于替换字符串中的匹配项。使用频率中等
语法:
re.sub(pattern,repl,string, count=0, flags=0)
函数参数说明:
pattern : 正则表达式。
repl : 替换的字符串(也可为一个函数)。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
flags:同上一个函数介绍
实例
题目:将字符串: "chenghaokeji666 chenghaokeji888" 中的数字统一替换为777
import re str1 = "chenghaokeji666 chenghaokeji888" # 通过\d匹配单个数字,+表示前面的字符匹配1个或多个, result = re.sub(r'\d+', "777", str1) print("slogan是: ", result )
以上实例执行结果如下:
slogan: chenghaokeji777 chenghaokeji777
练习:
有如下字符串str1 = "chenghaokeji666 chenghaokeji888 chenghaokeji1234 chenghaokeji6789",请将这里面的所有数字(无论长短)统一替换为三个*
答案:
import re str1 = "chenghaokeji666 chenghaokeji888 chenghaokeji1234 chenghaokeji6789" # [0-9]表示匹配单个数字0-9,+匹配前面的字符1个多个数字 num = re.sub(r'[0-9]+', "***", str1) print("slogan: ", num )
4.re.search函数(一般)
作用:匹配整个字符串,直到找到一个匹配,返回匹配后的对象,否则返回None。
语法:
re.search(pattern,string, flags=0)
函数参数说明:
同findall参数说明。
实例
import re str1 = "2018-05-31" # [0-9]表示匹配单个数字0-9,+匹配前面的字符1个或多个 result = re.search(r'^(\d{4})-(\d{2})-(\d{2})$', str1) print("匹配后的结果对象为: ", result) # print("group()获取表达式匹配到的整体结果:", result.group()) print("group(1)获取第一组正则匹配到的结果", result.group(1)) print("group(2)获取第二组正则匹配到的结果", result.group(2)) print("group(2)获取第二组正则匹配到的结果", result.group(3)) print("groups()获取一个包含所有小组字符串的元组:", result.groups())
代码输出:
匹配后的结果对象为:
group()获取表达式匹配到的整体结果: 2018-05-31
group(1)获取第一组正则匹配到的结果 2018
group(2)获取第二组正则匹配到的结果 05
group(2)获取第二组正则匹配到的结果 31
groups()获取一个包含所有小组字符串的元组:('2018', '05', '31')
心里话:咋样,现在明白了吗?group的用法就是如此,一般我们用的groups比较多,还有就是通过group(n)来获取第几组匹配的结果,分组的用法还算常用。
今天咱们就讲到这里后面还有match函数,以及match函数与search函数的区别,更加精彩,希望大家分享转发收藏以作备用,分享朋友圈成功的朋友可以联系我获取正则完整的教程pdf版本(朋友圈分组就别玩了,信任是相互的),后续学习更加方便
本文【c 正则表达式 re_search_c语言正则表达式实例】由作者: 前端后端 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4066.html