貪婪模式和非貪婪模式

2021-09-26 15:58:53 字數 480 閱讀 2396

1.什麼是正規表示式的貪婪與非貪婪匹配

如:string str="abcaxc";

patter p="ab*c";

貪婪匹配:正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字串str,結果就是匹配到:abcaxc(ab*c)。

非貪婪匹配:就是匹配到結果就好,就少的匹配字元。如上面使用模式p匹配字串str,結果就是匹配到:abc(ab*c)。

2.程式設計中如何區分兩種模式

預設是貪婪模式;在量詞後面直接加上乙個問號?就是非貪婪模式。

量詞::m到n個

*:任意多個

+:乙個到多個

?:0或乙個

貪婪模式和非貪婪模式

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

貪婪與非貪婪模式

對於匹配優先量詞的匹配下限很好理解,等價於 它修飾的子表示式,最少匹配0次,最多匹配1次 等價於 它修飾的子表示式,最少匹配0次,最多匹配無窮多次 等價於 它修飾的子表示式,最少匹配1次,最多匹配無窮多次。對於忽略優先量詞的下限,也是容易忽略的。也是忽略優先量詞,被修飾的子表示式使用的也是非貪婪模式...

Regexp 的貪婪和非貪婪模式

下面給幾個例子 不加問號預設為貪婪 var reg a.c var string aaaccaa var result string.match reg aaacc 加上問號為非貪婪 var reg a.c var string aaaccaa var result string.match reg...