Welcome

首页 / 软件开发 / Delphi / Delphi中正则表达式语法(1) 关于大小写与中文

Delphi中正则表达式语法(1) 关于大小写与中文2012-12-20 万一 //替换一般字符串

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "我爱DELPHI, 但Delphi不爱我!";
reg.RegEx := "Delphi";
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: 我爱DELPHI, 但◆不爱我!
FreeAndNil(reg);
end;

//不区分大小写

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "我爱DELPHI, 但Delphi不爱我!";
reg.RegEx := "Delphi";
reg.Replacement := "◆";
reg.Options := [preCaseLess]; //不区分大小的设定, 默认是区分的
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: 我爱◆, 但◆不爱我!
FreeAndNil(reg);
end;

//试试中文替换

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "我爱DELPHI, 但Delphi不爱我!";
reg.RegEx := "我";
reg.Replacement := "◆";
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆爱DELPHI, 但Delphi不爱◆!
FreeAndNil(reg);
end;

//如果不区分大小写, 竟然也不区分中文字了

var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := "我爱DELPHI, 但Delphi不爱我!";
reg.RegEx := "我";
reg.Replacement := "◆";
reg.Options := [preCaseLess]; //也设定不区分大小
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆◆DELPHI, ◆Delphi◆◆◆!
FreeAndNil(reg);
end;
//我测试了不同的汉字, 除了乱以外,没有规律; 所有如果操作汉字暂时不要指定 preCaseLess