在精通正規表示式一中講到了反向引用,其中的括號就是捕獲型括號,它具有分組和捕獲的作用,但是,有時候我們需要用到非捕獲型括號,比如我已經寫好了乙個程式,現在我要擴充套件正規表示式的功能,比如加乙個『(…)?』,這樣並沒有影響原來的功能而且能匹配比原來跟多的東西,但是,它打亂了原來的組的反向引用順序,如果恰好這個分組是你用不到的,那麼就可以就可以用上非捕獲型括號:
(?: )
因為它不用捕獲,還能提高匹配效率,但是,這種表示方法確實有點不夠美觀,會增加整體閱讀難度,所以可以根據實際情況取捨。
下面舉乙個具體的例子來說明非捕獲型括號:
這是正常的匹配:
這是非捕獲型括號的匹配:
正規表示式之捕獲型分組與非捕獲型分組
使用小括號指定乙個子表示式後,匹配這個子表示式的文字 也就是此分組捕獲的內容 可以在表示式或其它程式中作進一步的處理。捕獲組 語法 字元 描述 示例 pattern 匹配pattern並捕獲結果,自動設定組號。abc d 匹配abcd或者abcabcd pattern 或 name pattern ...
js 正規表示式捕獲型
測試demo 本文案例位址 分組有四種型別 見案例 捕獲型 非捕獲型 正向前瞻型 反向前瞻型 捕獲性分組 就是捕獲分組所匹配的內容暫且儲存在某個地方,以便下次使用,捕獲性分組以 表示,有些地方將取得捕獲性分組所匹配結果的過程稱之為 反向引用 測試demo中有針對這個的專門案例 非捕獲性分組不捕獲分組...
正規表示式 非捕獲分組
目前為止,總共介紹了括號的三種用途 分組,將相關的語速歸攏到一起,構成單個元素 多選結構,規定可能出現的多個子表達示 引用分組,將子表示式匹配的文字儲存起來,供之後引用。這三種用途並不是彼此獨立的,而是互相重疊的 單純的分組可以視為 只包含乙個多選分支的多選結構 整個多選結構也會被視為單個元素,可以...