首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 正則表達式語法詳解 (3):字元類別 [] 範圍匹配與排除 ^

     編輯:Delphi

字元類別 [...] 是正則表達式中定義「可接受字元集合」的核心語法,支援範圍、列舉、排除三種模式。

基本範圍匹配

大寫字母 [A-Z]

reg.Subject := 'CodeGear Delphi 2007 for Win32'; 
reg.RegEx := '[A-Z]'; 
reg.Replacement := '◆'; 
{ 輸出: ◆ode◆ear ◆elphi 2007 for ◆ in32 }

小寫字母 [a-z]

reg.RegEx := '[a-z]'; 
{ 輸出: C◆◆◆G◆◆◆ D◆◆◆◆◆ 2007 ◆◆◆ W◆◆32 }

數字 [0-9]

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 + -

字元類別是正則表達式的「積木」,靈活組合範圍、列舉、排除,能精確描述任何字元集合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved