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 复习

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...的文本”

浙公网安备 33010602011771号