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); //返回: ◆◆◆◆Delphi◆2008◆for◆Win32◆◆

  FreeAndNil(reg);
end;

// s 匹配任何空白, 包括空格、制表、换页等, 相当于 [f

	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 : 换页符
  
 : 换行符
  
 : 回车符
  	 : 制表符(Tab)
  v : 垂直制表符
}

// S 匹配任何非空白, 相当于 [^f

	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;
原文地址:https://www.cnblogs.com/honeynm/p/4058680.html