平常查找文本内容,经常用到Python正则模块re的match/search/findall三个函数,容易混,现在写下来备用。
函数 | 定义 | 返回值 |
---|---|---|
re.search(pattern, string, flags=0) | 搜索第一个匹配的字符串 | None 或match 对象 |
re.match(pattern, string, flags=0) | 搜索第一个以pattern 开头的字符串 | None 或match 对象 |
re.findall(pattern, string, flags=0) | 搜索所有匹配 | 列表,如果有多个分组,则返回元组的列表 |
import re
s = "abcabc"
re.search('bc', s) # <_sre.SRE_Match object; span=(1, 3), match='bc'>
re.match('bc', s) # None
re.match('ab', s) # <_sre.SRE_Match object; span=(0, 2), match='ab'>
re.findall('bc', s) # ['bc', 'bc']
re.findall('(b)(c)', s) # [('b', 'c'), ('b', 'c')]