正則表達式預設區分大小寫,preCaseLess 選項控制大小寫敏感度,但對中文有特殊行為需注意。
reg.Subject := '我愛DELPHI, 但Delphi不愛我!';
reg.RegEx := 'Delphi';
reg.Replacement := '◆';
reg.ReplaceAll;
{ 輸出: 我愛DELPHI, 但◆不愛我! }
reg.Options := [preCaseLess];
{ 輸出: 我愛◆, 但◆不愛我! }
reg.RegEx := '我';
reg.ReplaceAll;
{ 輸出: ◆愛DELPHI, 但Delphi不愛◆! }
reg.Options := [preCaseLess];
reg.RegEx := '我';
reg.ReplaceAll;
{ 輸出: ◆◆DELPHI, ◆Delphi◆◆◆! }
{ 所有中文字元都被匹配!不只是「我」 }
preCaseLess 啟用「不區分大小寫」模式[Dd][Ee][Ll][Pp][Hh][Ii](?i)Delphi(?-i) 區域性開啟/關閉 (若引擎支援)preCaseLess{ 不同漢字測試:除了亂碼外無規律,確認是全漢字匹配 }
reg.Subject := '中文測試';
reg.RegEx := '中';
reg.Options := [preCaseLess];
reg.ReplaceAll;
{ 所有漢字皆被替換 }
此特性極易導致生產環境嚴重 Bug,務必銘記:「操作中文時禁用 preCaseLess」。