import:: import re
doc:: re
Python 的 re 模块使用的语法是以 Perl 使用的正则表达式语法为基础,加上一些 Python 特定的改进,一些通用性的语法可以参考 regex。
Match
Match 对象包含有关匹配性质的信息:原输入字符串、使用的正则表达式以及在原字符串中出现的位置。
- .start():返回首个匹配到字符串的开始
- .end(): 返回首个匹配到字符串的结尾
- .groups():
函数
re.compile
将正则表达式的的样式编译为一个正则对象。
p = "ab"
text = "abbaaabbbbaaaaa"
pron = re.compile(p)
prog.match(text)
# 等同于
re.match(p, text)
# 返回: <re.Match object; span=(0, 2), match='ab'>
如果需要多次复用,用这个方式更加高效。
re.search()
成功匹配返回一个 Match 对象,如果没找到则返回 None
re.findall()
成功匹配返回对应字符串列表,匹配失败返回空列表。
import re
text = "abbaaabbbbaaaaa"
pattern = "ab"
re.findall(pattern, text)
# 返回: ['ab', 'ab']
re.finditer()
和 re.findall() 类似,不过是返回 Match 对象。
re.sub()
替换所有匹配为指定内容
import re
p = re.compile("ab")
text = "abbaaabbbbaaaaa"
p.sub("42", text)
# 返回: 42baa42bbbaaaaa
re.subn()
功能和 re.sub() 一样,不过是以元组形式返回,除修改后的字符串之外,还包含替换的次数。
搜索选项
import re
re.IGNORECASE # 忽略大小写
# 缩写:re.I, 内联标记: ?i
re.MULTILINE # 多行匹配
# 缩写: re.M, 内联标记: ?m
re.DOTALL # 让 . 匹配任何字符
# 缩写: re.S, 内联标记: ?s