Welcome

首页 / 软件开发 / Delphi / Delphi中正则表达式语法(3) 匹配范围

Delphi中正则表达式语法(3) 匹配范围2012-12-20 万一 // [A-Z]: 匹配所有大写字母

var reg: TPerlRegEx;begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "CodeGear Delphi 2007 for Win32";
reg.RegEx := "[A-Z]";
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆ode◆ear ◆elphi 2007 for ◆ in32
FreeAndNil(reg);
end;

// [a-z]: 匹配所有小写字母

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "CodeGear Delphi 2007 for Win32";
reg.RegEx := "[a-z]";
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: C◆◆◆G◆◆◆ D◆◆◆◆◆ 2007 ◆◆◆ W◆◆32
FreeAndNil(reg);
end;

// [0-9]: 匹配所有数字

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "CodeGear Delphi 2007 for Win32";
reg.RegEx := "[0-9]";
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: CodeGear Delphi ◆◆◆◆ for Win ◆◆
FreeAndNil(reg);
end;

//匹配几个范围

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "CodeGear Delphi 2007 for Win32";
reg.RegEx := "[C-Do-p0-2]"; //大写字母: C-D; 小写字母: o-p; 数字 : 0-2
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆◆deGear ◆el◆hi ◆◆◆7 f◆r Win3◆
FreeAndNil(reg);
end;

//匹配 [] 中的所有

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "CodeGear Delphi 2007 for Win32";
reg.RegEx := "[Ci2]"; //大写字母: C; 小写字母: i; 数字: 2
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆odeGear Delph◆ ◆007 for W◆ n3◆
FreeAndNil(reg);
end;
// ^ 排除 [] 中的所有var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "CodeGear Delphi 2007 for Win32";
reg.RegEx := "[^Ci0-2]"; //这里排除了大写字母: C; 小写字母: i; 数字: 0-2
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: C◆◆◆◆◆◆◆◆◆◆◆◆◆i◆ 200◆◆◆◆◆◆◆i◆◆2
FreeAndNil(reg);
end;