Delphi 正則表達式語法(4): 常用轉義字符與 .
// \d 匹配所有數字, 相當于 [0-9]
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := '期待Delphi 2008 for Win32!';reg.RegEx? := '\d';reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject); //返回: 期待Delphi ◆◆◆◆ for Win◆◆!FreeAndNil(reg);
end;
// \D 匹配所有非數字, 相當于 [^0-9]
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := '期待Delphi 2008 for Win32!';reg.RegEx? := '\D';reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject); //返回: ◆◆◆◆◆◆◆◆◆◆◆2008◆◆◆◆◆◆◆◆32◆◆FreeAndNil(reg);
end;
// \w 匹配字母、數字與下劃線_, 相當于 [A-Za-z0-9_]
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := '期待Delphi 2008 for Win32!';reg.RegEx? := '\w';reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject); //返回: 期待◆◆◆◆◆◆ ◆◆◆◆ ◆◆◆ ◆◆◆◆◆!FreeAndNil(reg);
end;
// \W 匹配非字母、數字與下劃線_, 相當于 [^A-Za-z0-9_]
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := '期待Delphi 2008 for Win32!';reg.RegEx? := '\W';reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject); //返回: ◆◆◆◆Delphi◆2008◆for◆Win32◆◆FreeAndNil(reg);
end;
// \s 匹配任何空白, 包括空格、制表、換頁等, 相當于 [\f\n\r\t\v]
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := '期待Delphi 2008 for Win32!';reg.RegEx? := '\s';reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject); //返回: 期待Delphi◆2008◆for◆Win32!FreeAndNil(reg);
end;{\f : 換頁符\n : 換行符\r : 回車符\t : 制表符(Tab)\v : 垂直制表符
}
// \S 匹配任何非空白, 相當于 [^\f\n\r\t\v]
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := '期待Delphi 2008 for Win32!';reg.RegEx? := '\S';reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject); //返回: ◆◆◆◆◆◆◆◆◆◆ ◆◆◆◆ ◆◆◆ ◆◆◆◆◆◆◆FreeAndNil(reg);
end;
// \x 匹配十六進制的 ASCII
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := 'CodeGear Delphi';reg.RegEx? := '\x61'; // a 的 ASCII 值是 97, 也就是十六進制的 61reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject); //返回: CodeGe◆r DelphiFreeAndNil(reg);
end;//非常遺憾 TPerlRegEx 不能使用 \u 或 \U 匹配 Unicode 字符!
// . 匹配除換行符以外的任何字符
varreg: TPerlRegEx;
beginreg := TPerlRegEx.Create(nil);reg.Subject := '期待' + #10 + 'Delphi 2008 for Win32!'; //#10是換行符reg.RegEx? := '.';reg.Replacement := '◆';reg.ReplaceAll;ShowMessage(reg.Subject);{返回:◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆}FreeAndNil(reg);
end;