正規表示式 非捕獲分組

2022-09-03 13:48:17 字數 554 閱讀 9922

目前為止,總共介紹了括號的三種用途: 分組,將相關的語速歸攏到一起,構成單個元素;多選結構,規定可能出現的多個子表達示;引用分組,將子表示式匹配的文字儲存起來,供之後引用。

這三種用途並不是彼此獨立的,而是互相重疊的: 單純的分組可以視為「只包含乙個多選分支的多選結構」;整個多選結構也會被視為單個元素,可以由單個量詞限定。最重要的是,無論是否需要引用分組,只要出現了括號,正規表示式在匹配是就會把括號內的子表示式儲存起來,提供引用。如果並不需要引用,儲存這些資訊無疑會影響正規表示式的效能;如果表示式比較複雜,要處理的文字有很多,更可能嚴重影響效能。

為解決這種問題,正規表示式提供了非捕獲分組(non-capturing group),非捕獲分組類似普通的捕獲分組,只是在開括號後緊跟乙個問號和冒號(?:...),這樣的括號叫做非捕獲分組,它只能限定量詞的作用範圍,不捕獲任何文字。在引用分組時,分組的編號同樣會按開括號出現的順序從左到右遞增,只是必須以捕獲分組為準,非捕獲分組會略過

正規表示式之捕獲型分組與非捕獲型分組

使用小括號指定乙個子表示式後,匹配這個子表示式的文字 也就是此分組捕獲的內容 可以在表示式或其它程式中作進一步的處理。捕獲組 語法 字元 描述 示例 pattern 匹配pattern並捕獲結果,自動設定組號。abc d 匹配abcd或者abcabcd pattern 或 name pattern ...

正規表示式 分組與捕獲

之前使用正規表示式的時候大多數狀況下只是用用匹配表示式,為什麼說是匹配表示式呢,因為其實替換文字也可以使用表示式,我稱之為替換表示式。因為通常使用正規表示式的大多會是以下情況,比如把一段文字中的a字串更改為b字串 待匹配文字 abcdabcd 匹配表示式 b 替換文字 e 替換結果 aecdaecd...

正規表示式 分組與捕獲

之前使用正規表示式的時候大多數狀況下只是用用匹配表示式,為什麼說是匹配表示式呢,因為其實替換文字也可以使用表示式,我稱之為替換表示式。因為通常使用正規表示式的大多會是以下情況,比如把一段文字中的a字串更改為b字串 待匹配文字 abcdabcd 匹配表示式 b 替換文字 e 替換結果 aecdaecd...