python 66:re正则表达式4(全- tcy)
发布日期:2021-06-29 14:48:15
浏览次数:2
分类:技术文章
本文共 3150 字,大约阅读时间需要 10 分钟。
目录:
模式match对象方法 2018/12/17
Match.group(num=0) #获取匹配的组,缺省返回组 0, 也就是全部值Match..group ([g1,g2,...]) #返回组号为g1,g2所匹配字符串,组号不存在抛indexError # 参数用编号或别名;编号0或无代表整个匹配子串; # 无匹配返回None;截获了多次的组返回最后一次截获的子串。Match.groups([default]) #返回全部的组 # 相当于group(1,2,…last)。default表示无截获字符串组以这个值替代,默认为NoneMatch.groupdict([default]) #返回别名组的子串;别名为键、子串为值的字典 #没有别名的组不包含在内。default含义同上。Match.expand(template): #将匹配到的分组代入template中返回匹配的子串 # 参数:template用\id或\g、\g 引用分组,禁用编号0。 # \id与\g 是等价的;但\10将被认为是第10个分组,如果你想表达\1之后是字符'0',只能使用\g<1>0Match.start([group]) #返回组匹配子串在str起始索引(子串第一个字符的索引)Match.end([group]) #返回组匹配子串在str结束的位置,默认0Match.span() #返回组子串在str中(开始,结束)位置的元组
实例:
# 实例0:a = "123abc456"re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1) #123re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2) #abcre.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3) #456
实例1:- 属性
m = re.match(r'(\w+) (\w+)(?P.*)', 'hello world!')m.string # 匹配时使用文本 # hello world!m.re # 匹配时使用Pattern对象 # re.compile('(\\w+) (\\w+)(?P .*)')m.pos # 文本中正则表达式开始搜索的索引 # 0m.endpos # 文本正则表达式结束搜索的索引 # 12m.lastindex # 最后1个分组在文本中索引。如无返回None# 3m.lastgroup # 最后1个分组的别名。无返回None # 'sign'
实例2:- 方法
m.group(1,2) #获得组1组2截获的字符串 #('hello', 'world')m.groups() #获取全部组子串 #('hello', 'world', '!')m.groupdict()#获取别名sign组的子串 #{'sign': '!'}m.expand(r'\2 \1\3')#提取指定分组匹配的子串 #world hello!m.start(2) #组2子串开始索引 # 6m.end(2) #组2子串结束索引 # 11m.span(2) #组2子串开始结束索引 # (6, 11)
其他实例:
# 实例1:s= 'Tom:9527 , Sharry:0003'm=re.match( r'(?P\w+):(?P \d+)' , s )m[0] #: 'Tom:9527'm.group(0) #: 'Tom:9527'm.group() # 'Tom:9527'm.groups() # ('Tom', '9527')m[1] #: 'Tom'm.group(1) #: 'Tom'm.group('name')# 'Tom'm[2] #: '9527'm.group(2) #: '9527'm.group('num') # '9527'# 实例2:p = re.compile('(ab)*') #将匹配零次或多次重复 abp.match('ababababab').span() # (0, 10)m = re.match('(a)b','ab').group() # 'ab'm = re.match('(a(b)c)d','abcd')m.group(0)# 'abcd'm.group(1)# 'abc'm.group(2)# 'b'm.group(2,1,2)#传递多个组号 # ('b', 'abc', 'b')m.groups() #所有子组的字符串的元组# ('abc', 'b')# 实例3:match = re.search('(?P \d{3})(?P \d{2})''(?P \d{2})(?P \d{4})', '02112172018xx')match.groupdict() # {'city': '021', 'month': '12', 'day': '17', 'year': '2018'}# 实例4:# 'dog' 全部替换成 'cat's=' I have a dog , you have a dog , he have a dog 're.sub( r'dog' , 'cat' , s ) # ' I have a cat , you have a cat , he have a cat '# 替换前面两个re.sub( r'dog' , 'cat' , s , 2 )# ' I have a cat , you have a cat , he have a dog '# 发生了多少次替换,则可以使用 subnre.subn( r'dog' , 'cat' , s ) # (' I have a cat , you have a cat , he have a cat ', 3)# 实例5:字符串被 ',' 分割去掉逗号前后空格s=' I have a dog , you have a dog , he have a dog 're.split( '\s*,\s*' , s ) # [' I have a dog', 'you have a dog', 'he have a dog ']# 实例6:- 特殊字符匹配# 将特殊字符用反义字符的形式显示出来。s= '111 222 (*+?) 333' # 匹配 '(*+?)' 这个子字符串rule= re.escape( r'(*+?)' ) # \(\*\+\?\)re.findall( rule , s ) # ['(*+?)']
转载地址:https://chunyou.blog.csdn.net/article/details/85157072 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月26日 18时28分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
为什么你学C++这么难?
2019-04-29
无人机破巡检难题,秒变电网卫士
2019-04-29
五年,我成为了一名嵌入式工程师。
2019-04-29
2020年电赛题目,命题专家们怎么看?
2019-04-29
PCB元器件摆放不可忽略的10个技巧
2019-04-29
掌握AI核心技术没有秘籍,能自己创造就是王道
2019-04-29
大学老师的月薪多少?实话实说:4万多一点……
2019-04-29
2020年电赛题目,命题专家权威解析!
2019-04-29
写论文,这个神器不能少!
2019-04-29
现在做硬件工程师还有前途吗?
2019-04-29
华为被超越!这家公司成中国最大智能手机制造商,不是小米!
2019-04-29
芯片为什么持续缺货?
2019-04-29
美国无人机在火星首飞成功,创造历史,3米飞行高度悬停30秒
2019-04-29
缺货涨价很久的MCU的国产和国外厂家汇总!(80家)
2019-04-29
华为重磅反击,鸿蒙来了!
2019-04-29
常用电子接口大全,遇到不认识的,就翻出来对照辨认!
2019-04-29
芯片IC附近为啥要放0.1uF的电容?
2019-04-29
电赛 | 19年全国一等奖,北航学子回忆录。
2019-04-29
电赛 | 19年全国一等奖,北航学子回忆录(上)
2019-04-29
电赛 | 19年全国一等奖,北航学子回忆录(下)
2019-04-29