python re.match() / re.search() / re.findall()

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。

re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。否则返回None。

re.finall方法

re.findall 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。

 

注意: match 和 search 是匹配一次 findall 匹配所有。

 

import re

a = "123abc456"
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0))  # 123abc456,返回整体
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1))  # 123
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2))  # abc
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3))  # 456
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).groups())  # ('123', 'abc', '456')


打印结果:

123abc456
123
abc
456
('123', 'abc', '456')

正则表达式中的三组括号把匹配结果分成三组

group() 同group(0)就是匹配正则表达式整体结果
group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
groups() 返回一个包含匹配的所有子组的元组 

 

posted @ 2023-02-14 22:59  Avicii_2018  阅读(234)  评论(0编辑  收藏  举报