正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:
修饰符 | 描述 |
---|---|
re.I(注:大写的i) | 使匹配对大小写不敏感 |
re.L | 做本地化识别(locale-aware)匹配 |
re.M | 多行匹配,影响 ^ 和 $ |
re.S | 使 . 匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |
例:(常用的)
re.I
pattern='aB'
print(bool(re.match(pattern,'ab',flags=re.I)))#结果为True,若不加re.I则为False
re.M 即 re.MULTILINE
影响'^'和'$'的行为,指定了以后,'^'会增加匹配每行的开始(也就是换行符后的位置);
'$'会增加匹配每行的结束(也就是换行符前的位置)。
pattern='^a{2}bb$'
print(bool(re.match(pattern,'aabb\naabb',re.M)))
#加上re.M结果为True,否则为False
re.S
pattern='\w+|.'
print(bool(re.match(pattern,'\nghhgb',re.S)))
#加上re.S为True,否则为False