python解析之正则表达式,由浅入深带你轻松学会正则表达式(05分组匹配)

正则表达式中还可以对匹配的内容进行分组匹配,如下:

01:普通分组匹配。

代码示例1:

import re

c = re.compile(r'(\d+)([a-z]+)(\d+)')

s = c.search('sdsdj235sadhasjd36432sjdha')

# 完整匹配结果
print(s.group(), s.span())
# 等价于上式
print(s.group(0), s.span(0))
# 第几个()匹配的结果
print(s.group(1), s.span(1))
print(s.group(2), s.span(2))
print(s.group(3), s.span(3))

运行结果:

02:标签等分组匹配。

代码示例2:

import re

# 固定匹配
# c = re.compile(r'<a>\w+</a>')

# \1表示前面第一个()匹配的内容
# c = re.compile(r'<([a-z]+)><([a-z]+)>\w+</\2></\1>')

# 给分组()起名字
c = re.compile(r'<(?P<goudan>[a-z]+)><(?P<dahua>[a-z]+)>\w+</(?P=dahua)></(?P=goudan)>')


s = c.search('<div><a>百度一下</a></div>')

if s:
    print(s.group())

运行结果:

猜你喜欢

转载自blog.csdn.net/z_xiaochuan/article/details/81586511