// ? 號的意義是匹配 0-1 次, 如果需要匹配 ? 怎麼辦 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := '你好嗎? 還行!'; reg.RegEx := '\?|!'; // 加轉義用的 \ reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 你好嗎◆ 還行◆ FreeAndNil(reg); end; //亂用轉義符號 \ 有時是可以的, 但有時會出問題, 最好不要亂用 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := '你好嗎? 還行!'; reg.RegEx := '\?|\!|\好'; // 給沒必要的 "!" 與 "好" 加了 \ 在本例中也正常了 reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 你◆嗎◆ 還行◆ FreeAndNil(reg); end; { 本來是有一個選項 [preExtra] 禁止亂用的, 但效果不好}
正則表達式中的特殊字符表: 特殊字符 在正則表達式中的意義 匹配字符本身 ^ 匹配字符串的開始,或不匹配 [] 中的內容 \^ $ 匹配字符串的結尾 \$ ( 和 ) 標記子表達式 \( 和 \) [ 和 ] 匹配"多種字符" 的表達式 \[ 和 \] { 和 } 匹配次數的符號 \{ 和 \} . 匹配除換行符以外的所有字符 \. ? 匹配 0 次或 1 次 \? + 匹配至少 1 次 \+ * 匹配 0 次或任意次 \* | 或 \| \ 轉義符號本身 \\