正規表示式貪婪模式中的非貪婪模式

2022-05-04 15:33:13 字數 342 閱讀 2284

這兩天再寫乙個內部的統計,需要提取來自於其它搜尋的關鍵字。

正規表示式:q=(.*?)&

需要提取的內容:

匹配的內容:%e6%83%a0%e5%b7%9e%e4%b8%bd%e5%a3%b0

解釋:(.*? )其中?的作用,他的作用就是勉強模式重複前面的字元,什麼意思呢?就是如果我用(.*a)去匹配aaaaaaa字串的結果就是(aaaaaaa)源字串這叫貪婪模式,如果用(.*?a)去匹配aaaaaaa的話他就會先匹配第一a,然後是第二個a,然後是第三個a…….這就叫勉強模式匹配有的地方也叫懶惰模式匹配。通俗一點(大家都喜歡通俗的解釋,呵呵)就是前者是從後往前去匹配盡可能多的字元,而後者是從前往後匹配

正規表示式 貪婪非貪婪模式

貪婪與非貪婪模式影響的是被量詞修飾的子表示式的匹配行為,貪婪模式在整個表示式匹配成功的前提下,盡可能多的匹配,而非貪婪模式在整個表示式匹配成功的前提下,盡可能少的匹配。非貪婪模式只被部分nfa引擎所支援。1.舉乙個例子 string str abcaxc patter p ab.c 貪婪匹配 正規表...

正規表示式貪婪與非貪婪模式

之前做程式的時候看到過正規表示式的貪婪與非貪婪模式,今天用的時候就想不起來了,現在這裡總結一下,以備自己以後用到注意。1.什麼是正規表示式的貪婪與非貪婪匹配 如 string str abcaxc patter p ab c 貪婪匹配 正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使...

正規表示式貪婪與非貪婪模式

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