
若要將元素分組,但不分離結果中的群組內容時,請使用非擷取群組 (“
(?:xxxx)
”),而不要使用規則運算式中的群組 (“
(xxxx)
”)。
在中等複雜的規則運算式中,可以將運算式的某些部分組合在一起。例如,在下列規則運算式樣式中,圓括弧會在文字 “ab” 周圍建立群組。因此,“+” 數量詞會套用到群組,而不是單一字元:
/(ab)+/
根據預設,每個群組的內容都是「擷取而來」。您可以在執行規則運算式時,以自己的樣式取得每個群組的內容。擷取這些群組結果會花費較長的時間,而且需要較多的記憶體,因為必須建立物件來包含群組結果。或者,您也可以在左括弧後面加上問號與冒號來使用非擷取群組語法。此語法指出字元的行為就如同群組,但不會擷取做為結果:
/(?:ab)+/
使用非擷取群組語法的速度較快,而且使用的記憶體比使用標準群組語法少。