貪婪與非貪婪模式

2021-06-28 21:09:02 字數 575 閱讀 5532

對於匹配優先量詞的匹配下限很好理解,「?」等價於「」,它修飾的子表示式,最少匹配0次,最多匹配1次;「*」等價於「」,它修飾的子表示式,最少匹配0次,最多匹配無窮多次;「+」等價於「」,它修飾的子表示式,最少匹配1次,最多匹配無窮多次。

對於忽略優先量詞的下限,也是容易忽略的。

??」也是忽略優先量詞,被修飾的子表示式使用的也是非貪婪模式,「??」修飾的子表示式,最少匹配0次,最多匹配1次。在匹配過程中,遵循非貪婪模式匹配原則,先不匹配,即匹配0次,記錄回溯狀態,只有不得不匹配時,才去嘗試匹配。

*?」修飾的子表示式,最少匹配0次,最多匹配無窮多次;「+?」修飾的子表示式,最少匹配1次,最多匹配無窮多次,「+?」雖然使用的是非貪婪模式,在匹配過程中,首先要匹配乙個字元,之後才是忽略匹配的,這一點也需要注意。

貪婪模式和非貪婪模式

1.什麼是正規表示式的貪婪與非貪婪匹配 如 string str abcaxc patter p ab c 貪婪匹配 正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字串str,結果就是匹配到 abcaxc ab c 非貪婪匹配 就是匹配到結果就好,就少的匹配字元。如上面...

貪婪模式和非貪婪模式

正規表示式通常使用於查詢匹配的字串。python裡數量詞預設是貪婪的 在少數語言裡也可能預設是非貪婪 總是嘗試匹配盡可能多的字元 非貪婪模式剛好相反,總是嘗試匹配盡可能少的字元。例如,正規表示式 ab 如果用於查詢 abbbc 就會找到 abbb 如果使用非貪婪的數量詞 ab 就會找到 a 例如1 ...

貪婪和非貪婪

python裡數量詞預設是貪婪的 在少數語言裡也可能是預設非貪婪 總是嘗試匹配盡可能多的字元 非貪婪則相反,總是嘗試匹配盡可能少的字元。在 後面加上?使貪婪變成非貪婪。s this is a number 234 235 22 423 r re.match d d d d s r.group 1 4...