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...