一、修正模式
符号 | 含义 |
---|---|
I | 匹配时忽略大小写 |
M | 多行匹配 |
L | 做本地化识别匹配 |
U | 根据Unicode字符及解析字符 |
S | 让.匹配包括换行符,即用了该模式修正后,”.”匹配就可以匹配任意的字符了 |
所谓模式修正,即可以在不改变正则表达式的情况下,通过模式修正符改变正则表达式的含义,从而实现一些匹配结果的调整等功能。
比如,可以使用模式修正符I让对于模式在匹配时不区分大小写
import re
pattern1 = "python"
pattern2 = "python"
string = "abcdfphp345Pythony_py"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string, re.I)
print("结果1:%s" % result1) # 结果1:None
print("结果2:%s" % result2) # 结果2:<_sre.SRE_Match object; span=(11, 17), match='Python'>
二、 贪婪模式与懒惰模式
贪婪模式的核心点尽可能多地匹配 懒惰模式尽可能少的匹配
import re
pattern1 = "p.*y" # 贪婪模式
pattern2 = "p.*?y" # 懒惰模式
string = "abcdfphp345pythony_py"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string, re.I)
print("贪婪模式结果:%s" % result1) # 贪婪模式结果:<_sre.SRE_Match object; span=(5, 21), match='php345pythony_py'>
print("懒惰模式结果:%s" % result2) # 懒惰模式结果:<_sre.SRE_Match object; span=(5, 13), match='php345py'>