博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 66:re正则表达式4(全- tcy)
阅读量:1882 次
发布时间:2019-04-26

本文共 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 ) # ['(*+?)']

转载地址:http://efqbf.baihongyu.com/

你可能感兴趣的文章
这份战略路线图,带你组建颠覆性的数据科学团队
查看>>
在你崩溃之前,这8种做法会让React应用程序先崩溃
查看>>
代码详解:用Pytorch训练快速神经网络的9个技巧
查看>>
从美国、中国到非洲……人工智能是如何创造未来的?
查看>>
7个秘诀,带你由数据分析师成长为数据科学家
查看>>
人脸识别+深度学习,水平远超人类大脑!
查看>>
用机器学习辅助设计,助你化身建筑大师!
查看>>
谷歌新技术:使用概念激活向量 (CAVs) 理解深度网络
查看>>
物联网、大数据和人工智能,为什么总是“抱团出现”?
查看>>
想知道深度学习优化算法的原理?点我!快点我!
查看>>
7大技巧!用React Native实现编程效率最大化
查看>>
面对海量数据用Excel无从下手?试试Jupyter吧
查看>>
教你识别心理变态的网络键盘侠并有效应对他们!
查看>>
科学家复活了死去的大脑,下一步呢?
查看>>
福利!GitHub上6个超强开源机器学习库盘点
查看>>
海量资源!开发人员成功转行数据科学必备清单
查看>>
这五大MySQL在线课程,最适合初学者的你!
查看>>
JDK、JRE、JVM的区别
查看>>
SAP S4 APO LiveCache数据库合并在HANA中
查看>>
SAPGUI 收藏夹 乱码?何解?茅塞顿开
查看>>