Delphi 正则表达式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Delphi 正则表达式语法(1): 关于大小写与中文

//替换一般字符串

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);

reg.ReplaceAll;

ShowMessage(reg.Subject); //返回: ◆◆DELPHI, ◆Delphi◆◆◆!

FreeAndNil(reg);

end;

//我测试了不同的汉字, 除了乱以外,没有规律; 所有如果操作汉字暂时不要指定 preCaseLess

Delphi 正则表达式语法(2): 或者与重复

// | 号的使用, | 是或者的意思

var

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg.Subject := 'CodeGear Delphi 2007';

reg.RegEx := 'e|Delphi|0'; //使用了 | 记号

reg.Replacement := '◆';

reg.ReplaceAll;

ShowMessage(reg.Subject); //返回: Cod◆G◆ar ◆ 2◆◆7

FreeAndNil(reg);

end;

// + 的使用, + 是重复 1 个或多个

var

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';

reg.RegEx := 'a?';//使用了 ? 记号

reg.Replacement := '◆';

reg.ReplaceAll;

ShowMessage(reg.Subject); //返回: ◆◆◆◆◆◆◆◆◆◆◆b ◆bb ◆bbb◆◆呀◆

FreeAndNil(reg);

end;

//大括号的使用<1>, 指定重复数

var

reg: TPerlRegEx;

begin

reg := TPerlRegEx.Create(nil);

reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';

reg.RegEx := 'a{3}'; //这里指定重复 3 次

reg.Replacement := '◆';

reg.ReplaceAll;

ShowMessage(reg.Subject); //返回: a aa ◆◆a ab abb abbba a 呀a

FreeAndNil(reg);

FreeAndNil(reg);

end;

//上面这个 {1,} 和 + 是等效的;

//还有 {0,1} 与 ? 是等效的;

//{0,} 和 * 是等效的

Delphi 正则表达式语法(3): 匹配范围

// [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);

相关文档
最新文档