關於正則表達式——捕獲型括號和非捕獲型括號

對於括號中的子表達式,正則表達式會將匹配的子表達式進行存儲。

<pre class="javascript" name="code">var regular = /^Subject:(\d)/
var str = "Subject:1 as something";
var result = regular.exec(str);
alert(reslt[0])  //Subject:1	
alert(result[1]) //1



上面的例子中,聲明瞭一個正則表達式,然後調用方法exec()執行正則的匹配,返回匹配結果的字符數組。

由結果我們可以看見,整個表達式的匹配結果作爲數組的第一項,子表達式(\d)的匹配結果也進行了保存操作,通過匹配結果可以獲取到。


有些時候我們只需要測試表達是否可以匹配,而並不需要進行存儲,可以通過非捕獲型括號"(?:)"

var regular = /^Subject:(?:\d)/
var str = "Subject:1 as something";
var result = regular.exec(str);
alert(reslt[0])  //Subject:1	
alert(result[1]) //null
子表達式(?:\d)並沒有進行存儲


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章