7 正则表达式

7.9 通配字符

可以使用.来匹配除换行以外的所有字符

7.9.1 .* 匹配任意字符

句点字符表示“除换行外所有单个字符” ,星号字符表示“前面字符出现零次或多次” 。

*. 配合使用就能达到匹配任意字符的效果

7.9.2 用 . 匹配换行

有时,我们需要让 . 也将换行符匹配,所以,我们可以在 compile 的时候加参数re.DOTALL来实现

import re

regex = re.compile (r'.*', re.DOTALL)
mo = regex.search ("<To serve man> \nfor dinner.>")
print (mo.group ())

7.10 复习

image-20260116155513780

7.11 不区分大小写的匹配

正常情况下,正则表达式区分大小写,如果我们想让正则表达式不区分大小写,我们可以向 re.compile() 传入 re.IGNORECASE 或 re.I,作为第二个参数

import re

regex = re.compile (r'good', re.I)
mo = regex.findall ("good, GOOd, GoOD")
print (mo)
['good', 'GOOd', 'GoOD']

7.12 用 sub() 方法替换字符串

使用 正则表达式对象的 sub() 方法可以用新文本替换掉匹配文本。

第一个参数是一个字符串,用于取代发现的匹配。第二个参数是一个字符串,即要进行匹配和替换的文本。

sub() 返回替换完成后的字符串

import re

regex = re.compile (r'Agent \w+')

mo = regex.sub (r'CENSORED', "Agent Alice told Agent Bob the secret.")

print (mo)
CENSORED told CENSORED the secret.

有时候,我们可能需要用匹配文本本身作为替换的一部分。在 sub() 的第一个参数中,我们可以使用 \1, \2, \3, ... 表示 “在替换中输入分组 1、2、3...的文本”

posted @ 2026-01-16 16:47  michaele  阅读(1)  评论(0)    收藏  举报