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

Delphi 正則表達式語法詳解 (4):常用轉義序列與字元類別速查 (\d \D \w \W \s \S \x .)

     編輯:Delphi

PCRE 正則引擎提供一組簡潔的轉義序列代表常用字元類別,大幅簡化模式撰寫。

核心轉義序列對照表

序列匹配內容等價字元類別範例
\d數字[0-9]\d{4} 四位數年份
\D非數字[^0-9]提取非數字字元
\w單詞字元 (字母數字底線)[A-Za-z0-9_]\w+ 匹配識別碼
\W非單詞字元[^A-Za-z0-9_]分隔符匹配
\s空白字元[\f\n\r\t\v]\s+ 匹配任意空白
\S非空白字元[^\f\n\r\t\v]提取可見字元
\xNN十六進位 ASCII[\x00-\xFF]\x61 = 'a'
.任意字元 (除換行)[^\n] (單行模式下含換行)通配符

空白字元細分

\f : 換頁 (Form Feed, 0x0C)
\n : 換行 (Line Feed, 0x0A)
\r : 回車 (Carriage Return, 0x0D)
\t : 定位符/Tab (Horizontal Tab, 0x09)
\v : 垂直定位符 (Vertical Tab, 0x0B)

實戰範例

提取數字

reg.Subject := '期待Delphi 2008 for Win32!'; 
reg.RegEx := '\d'; 
reg.Replacement := '◆'; 
{ 輸出: 期待Delphi ◆◆◆◆ for Win◆◆! }

提取非數字

reg.RegEx := '\D'; 
{ 輸出: ◆◆◆◆◆◆◆◆◆◆◆2008◆◆◆◆◆◆◆◆32◆◆ }

匹配單詞字元

reg.RegEx := '\w'; 
{ 輸出: 期待◆◆◆◆◆◆ ◆◆◆◆ ◆◆◆ ◆◆◆◆◆! }

十六進位匹配

reg.Subject := 'CodeGear Delphi'; 
reg.RegEx := '\x61'; { 0x61 = 97 = 'a' }
reg.Replacement := '◆'; 
{ 輸出: CodeGe◆r Delphi }

重要限制

  • 不支援 \u/\U Unicode 轉義:TPerlRegEx 基於 PCRE 8.x,僅支援 \x{FFFF} 形式 (需啟用 UTF-8 模式)
  • . 預設不匹配換行,需 preSingleLine 或 (?s) 啟用
  • \s 包含換行,. + preSingleLine 等價於 [\s\S]

Unicode 處理建議

{ Delphi 字串為 UTF-16,正則處理 Unicode 策略: }
  1. 使用 WideString/UnicodeString 作為 Subject
  2. 模式中直接寫 Unicode 字元 (如 中文)
  3. 或使用 \x{XXXX} 形式 (需確認引擎版本支援)

熟記這 8 個核心轉義序列,覆蓋 90% 的字元類別匹配需求。

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