1. 程式人生 > >python正則表示式的匹配優先順序

python正則表示式的匹配優先順序

在python正則表示式中,預設是 匹配最多的字元,這是貪婪匹配,比如:

 字串: abbbab     正則表示式: a.*b  得到的結果是 abbbab

如果希望匹配最少的字元 , 只需要在 * 後面加上? ,如 a.*?b , 這個意思是: 重複任意多個 , 但在成功匹配的前提下,匹配儘可能少的字元,這是懶惰匹配

a.*?b 匹配最少的字元 , 如果有這樣的字串: aabab, 它會匹配 aab 和 ab , 因為有比貪婪和懶惰更高優先順序的匹配:最開始的匹配,擁有最高優先順序。