1.正则表达式分组功能实例
示例1:
pattern = re.compile(r"(\d+)-(\d+)-(\d+)")
print(pattern.match("2019-12-07"))
print(pattern.match("2019-12-07").group())
print(pattern.match("2019-12-07").group(1))
print(pattern.match("2019-12-07").groups())
结果输出:
<_sre.SRE_Match object; span=(0, 10), match='2019-12-07'>
2019-12-07
2019
('2019', '12', '07')
2.match函数和search函数的区别
match函数适用场景:完全匹配后进行分组
search函数适用场景:搜索字符串
示例2:
pattern = re.compile(r"(\d+)-(\d+)-(\d+)")
print(pattern.match("2019-12-07"))
print(pattern.search("2019-12-07"))
print(pattern.match("aaa2019-12-07"))
print(pattern.search("aaa2019-12-07"))
结果输出:
<_sre.SRE_Match object; span=(0, 10), match='2019-12-07'>
<_sre.SRE_Match object; span=(0, 10), match='2019-12-07'>
None
<_sre.SRE_Match object; span=(3, 13), match='2019-12-07'>
3.sub函数
示例3:驼峰模式的名字,转换为下划线分隔
print(re.sub("[A-Z]", lambda x: "_" + x.group(0), "helloWorld").lower())
结果输出:
hello_world