python中的正则表达式(re模块)三

元字符之分组 ()

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
print(re.findall(r"(abc)+",'abcccccabccc'))
#注释:分组是把括号内的字符串看成一个整体来做正则匹配

以上实例执行结果:
['abc', 'abc']

import re
ret=re.search('(?P<id>\d{2})\.(?P<name>\w{3})','23.com')
print(ret.group())   
print(ret.group('id')) 
#注释:使用分组的来获取自己想要的组,以上分文两个组(id组和name组),实际正真在匹配的是\d{2}和\w{3}
#注释:(?P<>) 是分组的固定格式,里面的ID为自定义名字

以上实例执行结果:
23.com
23

re模块常用方法 search

#类似于find方法,当第一次匹配到以后就不会继续往后找直接返回结果,如果找不到返回None。

以下实例是使用search方法匹配数字;返回的结果一个match对象

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
ret=re.search('\d+','sdf23sdf35sdfs36')
print(ret)

以上实例执行结果:
<_sre.SRE_Match object; span=(3, 5), match='23'>

获取match对象的值,使用group方法

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
ret=re.search('\d+','sdf23sdf35sdfs36').group()
print(ret)

以上实例执行结果
23

re.match方法与search大致相同,不过match在字符串开始处进行匹配;

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
ret=re.search('\d+','56sdf23sdf35sdfs36').group()
print(ret)

以上实例执行结果
56

猜你喜欢

转载自blog.51cto.com/2032872/2151843