正則表達式之非捕獲組


有什么用

非捕獲類,在正則很簡單時,沒什么用,只有在正則中大量使用()時才有用

詳細說明-舉例說明

匹配2013-05-07,你可以用\d{4}-\d{2}-\d{2},你也可以加個括號(\d{4})-(\d{2})-(\d{2}),意思是完全一樣的,但加了括號,就意味括號里面的東西,你捕獲到了,你可以再使用,這就是捕獲組的概念

上面這種情況,你是沒必要加括號,但是,有時候你必不得已要加括號,比如說匹配1-100的數字,你會用^([1-9]?[0-9]|100)$,但是這個時候,會默認把括號里的東西捕獲過來以供你下次使用,其實,你只是用着正則匹配而已,因此就造成了內存浪費,當正則復雜時,效率更加低下,因此才有了非捕獲組,上面的就可以改寫成^(?:[1-9]?[0-9]|100)$

小結

非捕獲組跟匹配沒什么關系,只是為了提高效率


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM