您好,登錄后才能下訂單哦!
這篇文章主要介紹“JavaScript正則表達式的貪婪匹配和非貪婪匹配的區別”,在日常操作中,相信很多人在JavaScript正則表達式的貪婪匹配和非貪婪匹配的區別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript正則表達式的貪婪匹配和非貪婪匹配的區別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
所謂貪婪匹配就是匹配重復字符是盡可能多的匹配,比如:
"aaaaa".match(/a+/); //["aaaaa", index: 0, input: "aaaaa"]
非貪婪匹配就是盡可能少的匹配,用法就是在量詞后面加上一個“?”,比如:
"aaaaa".match(/a+?/); //["a", index: 0, input: "aaaaa"]
但是非貪婪匹配有時候和我們期待的并不一樣,比如:
"aaab".match(/a+b/); ["aaab", index: 0, input: "aaab"] "aaab".match(/a+?b/); ["aaab", index: 0, input: "aaab"]
在我們期待的情況下非貪婪匹配應該是匹配"ab"才對但是結果卻和貪婪匹配時一樣的。
在《權威指南》中有這么一句話:正則表達式的模式匹配總是會尋找字符串中第一個可能匹配的位置。
個人對這句話的理解是:上例中正則表達式會先找到第一個字符a,因為a后面連接的字符有可能形成匹配,這是正則表達式就認定這個位置的字符了,然后開始往后進行匹配,如果像第一個例子中那樣非貪婪匹配,匹配到第一個a就結束了,但是第二個例子中還要匹配b所以不得不接著往下匹配直到匹配到b為止結束。
到此,關于“JavaScript正則表達式的貪婪匹配和非貪婪匹配的區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。