06Python爬蟲---正則表達式03之模式修正_貪婪模式與懶惰模式

一、修正模式

符號 含義
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'>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章