正規表示式?:用法詳解

antzone發表於2017-03-15

本章節介紹一下?:在正規表示式中的作用。

先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var str = "antzone";
var reg = /(an)t/;
console.log(str.match(reg));

匹配截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201703/15/095226gn6ni7esx0dewrz9.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上圖紅框中的內容就是括號中子表示式匹配的內容。

關於子表示式可以參閱正規表示式分組一章節。

子表示式匹配的內容會佔據一定的記憶體,但是在實際應用,也許我們並不真正的需要子表示式所匹配的內容,可能使用子表示式僅僅是為了正規表示式的可讀性,為了防止子表示式對記憶體的消耗,那麼我們就可以使用?:來實現。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var str = "antzone";
var reg = /(?:an)t/;
console.log(str.match(reg));

執行截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201703/15/095326pdxb0x76mdd9p7x2.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

從上面的截圖可以看出,子表示式已經不會再佔據記憶體了。

相關文章