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