【转】Delphi 正则表达式语法,4: 常用转义字符

// \d 匹配所有数字, 相当于 [0-9]

var

reg: TPerlRegEx;

begin

reg := 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]

var

reg: TPerlRegEx;

begin

reg := 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_]

var

reg: TPerlRegEx;

begin

reg := 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_]

var

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg.Subject := '期待Delphi 2008 for Win32!';

reg.RegEx := '\W';

reg.Replacement := '◆';

reg.ReplaceAll;

ShowMessage(reg.Subject); //返回: 期待◆◆◆◆◆◆ ◆◆◆◆ ◆◆◆ ◆◆◆◆◆!

FreeAndNil(reg);

end;


// \s 匹配任何空白, 包括空格、制表、换页等, 相当于 [\f\n\r\t\v]

var

reg: TPerlRegEx;

begin

reg := 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]

var

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg.Subject := '期待Delphi 2008 for Win32!';

reg.RegEx := '\S';

reg.Replacement := '◆';

reg.ReplaceAll;

ShowMessage(reg.Subject); //返回: ◆◆◆◆◆◆◆◆◆◆ ◆◆◆◆ ◆◆◆ ◆◆◆◆◆◆◆

FreeAndNil(reg);

end;


// \x 匹配十六进制的 ASCII

var

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg.Subject := 'CodeGear Delphi';

reg.RegEx := '\x61'; // a 的 ASCII 值是 97, 也就是十六进制的 61

reg.Replacement := '◆';

reg.ReplaceAll;

ShowMessage(reg.Subject); //返回: CodeGe◆r Delphi

FreeAndNil(reg);

end;

//非常遗憾 TPerlRegEx 不能使用 \u 或 \U 匹配 Unicode 字符!


// . 匹配除换行符以外的任何字符

var

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg.Subject := '期待' + #10 + 'Delphi 2008 for Win32!'; //#10是换行符

reg.RegEx := '.';

reg.Replacement := '◆';

reg.ReplaceAll;

ShowMessage(reg.Subject);

{返回:

◆◆◆◆

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

}

FreeAndNil(reg);

end;