快速開始
教學
工具和語言
範例
參考
書籍評論
正規表示式教學
簡介
目錄
特殊字元
非列印字元
正規表示式引擎內部
字元類別
字元類別減法
字元類別交集
簡寫字元類別
錨點
字詞邊界
交替
選用項目
重複
分組和擷取
反向參照
反向參照,第 2 部分
命名群組
相對反向參照
分支重設群組
自由間距和註解
Unicode
模式修改器
原子分組
獨佔量詞
前瞻和後顧
環顧,第 2 部分
將文字保留在比對之外
條件式
平衡群組
遞迴
子常式
無限遞迴
遞迴和量詞
遞迴和擷取
遞迴和反向參照
遞迴和回溯
POSIX 方括號表示式
零長度比對
持續比對
此網站上的更多內容
簡介
正規表示式快速開始
正規表示式教學
替換字串教學
應用程式和語言
正規表示式範例
正規表示式參考
替換字串參考
書籍評論
可列印 PDF
關於此網站
RSS Feed 和部落格
RegexBuddy—Better than a regular expression tutorial!

使用括號進行分組和擷取

將正規表示式的一部分放在圓括號或括號中,您可以將正規表示式的該部分分組在一起。這允許您將量詞應用於整個群組,或將交替限制在正規表示式的部分。

只有括號可用於分組。方括號定義字元類別,而大括號則由具有特定限制的量詞使用。

括號建立編號擷取群組

除了將正規表示式的一部分分組在一起,括號還會建立一個編號的擷取群組。它會儲存括號內正規表示式部分所配對的字串部分。

正規表示式 Set(Value)? 會配對 SetSetValue。在第一個情況下,第一個(也是唯一的)擷取群組會保持為空。在第二個情況下,第一個擷取群組會配對 Value

非擷取群組

如果您不需要群組擷取其配對,您可以將此正規表示式最佳化為 Set(?:Value)?。問號和開括號後的冒號是建立非擷取群組的語法。開括號後的問號與正規表示式結尾的問號無關。最後一個問號是量詞,會讓前一個代碼 可選。此量詞不能出現在開括號後,因為在群組開始時沒有任何東西可以選擇。因此,即使這在起初可能會令人困惑,問號作為將代碼設為可選的運算子,以及問號作為非擷取群組語法的一部分,兩者之間沒有歧義。還有其他類型的群組會使用 (? 語法搭配冒號以外的其他字元,本教學課程稍後會說明。

color=(?:red|green|blue) 是另一個具有非擷取群組的正規表示式。此正規表示式沒有量詞。

支援 命名擷取 的正規表示式風格通常有選項可以 將所有未命名群組轉換為非擷取群組

使用擷取群組配對的文字

擷取群組可以輕鬆擷取正規表示式配對的一部分。您可以透過 反向參照 在正規表示式內重複使用文字。反向參照也可以用於替換字串。請查看 替換文字教學課程 以取得詳細資料。