example = "abbbbbbc"
pattern = re.compile("ab+")
貪婪模式:正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式pattern 匹配字串example,匹配到的結果就是」abbbbbb」整個字串。
非貪婪模式:在整個表示式匹配成功的前提下,盡可能少的匹配。如上面使用模式pattern 匹配字串example,匹配到的結果就只是」ab」整個字串。
非貪婪模式也就是將我們例子中的正規表示式「ab+」改為」ab+?」,當匹配到「ab」時,已經匹配成功,直接結束匹配,不在向後繼續嘗試,返回匹配成功的字串」ab」。
所以,我們可以將非貪婪模式理解為:在整個表示式匹配成功的前提下,盡可能少的匹配
2.從匹配原理角度看貪婪與非貪婪
能達到同樣匹配結果的貪婪與非貪婪模式,通常是貪婪模式的匹配效率較高。 所有的非貪婪模式,都可以通過修改量詞修飾的子表示式,轉換為貪婪模式。 貪婪模式可以與固化分組結合,提公升匹配效率,而非貪婪模式卻不可以。
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...