正则表达式
推荐教程
匹配的方法
import re
# 检测以模式串作为开头的源字符串
m = re.match(pattern, str) # m.group()可拿到匹配结果
# 在源字符串内寻找首次匹配
m = re.search(pattern, str) # m.group()可拿到匹配结果
# 在源字符串内寻找所有匹配
m = re.findall(pattern, str) # 返回一个由结果组成的list
# 将源字符串按照匹配切分
m = re.split(pattern, str) # 返回一个由结果组成的list
# 将源字符串内匹配的模式使用目标替换
m = re.sub(pattern, replace, str) # 返回替换之后的新的字符串
模式标识符
对于模式中转义字符串的处理
Python字符串会使用一些特殊的转义符,例如 \b 在字符串中代表退格,而在正则表达式中则代表一个单词的开头位置。因此可以在模式串的前面添加 r 来禁止字符串转义
匹配的输出
使用match
或search
时,所有的匹配会以m.group()
的形式返回。如果用括号将某一模式包裹起来,则每个被包裹的匹配结果都会返回.group()
,且整体以元组形式返回,调用.groups()
则可获取。
import re
source = 'Have a dish of fish tonight'
m = re.search(r'(. dish\b).*(\bfish)', source)
m.group() # 'a dish of fish'
m.groups() # ('a dish', 'fish')