字元類別 [...] 是正則表達式中定義「可接受字元集合」的核心語法,支援範圍、列舉、排除三種模式。
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := '[A-Z]';
reg.Replacement := '◆';
{ 輸出: ◆ode◆ear ◆elphi 2007 for ◆ in32 }
reg.RegEx := '[a-z]';
{ 輸出: C◆◆◆G◆◆◆ D◆◆◆◆◆ 2007 ◆◆◆ W◆◆32 }
reg.RegEx := '[0-9]';
{ 輸出: CodeGear Delphi ◆◆◆◆ for Win ◆◆ }
reg.RegEx := '[C-Do-p0-2]'; { 大寫 C-D、小寫 o-p、數字 0-2 }
{ 輸出: ◆◆deGear ◆el◆hi ◆◆◆7 f◆r Win3◆ }
reg.RegEx := '[Ci2]'; { 字面字元: C、i、2 }
{ 輸出: ◆odeGear Delph◆ ◆007 for W◆ n3◆ }
reg.RegEx := '[^Ci0-2]'; { 排除 C、i、0-2 }
{ 輸出: C◆◆◆◆◆◆◆◆◆◆◆◆◆i◆ 200◆◆◆◆◆◆◆i◆◆2 }
| 字元 | 在 [] 內意義 | 需轉義 |
|---|---|---|
] | 結束類別 | 是 (放首位或轉義) |
\ | 轉義 | 是 |
^ | 首位表排除,其他位置字面值 | 視位置 |
- | 範圍運算子 (非首尾時) | 首尾或轉義表字面 |
& : 等 | 字面值 | 否 |
[[:alpha:]] 字母 [[:digit:]] 數字 [[:alnum:]] 字母數字 [[:space:]] 空白 [[:lower:]] 小寫 [[:upper:]] 大寫 [[:punct:]] 標點 [[:xdigit:]] 十六進位數字
[\s\S] 或 [\d\D] 或 [\w\W]:匹配任意字元 (含換行),不依賴 preSingleLine[^\r\n]:匹配非換行字元 (等價於預設 .)- 放在 [] 首位或末位表字面值:[-az] = a-z + -字元類別是正則表達式的「積木」,靈活組合範圍、列舉、排除,能精確描述任何字元集合。