一、修正模式
符號 | 含義 |
---|---|
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'>