Delphi 正则表达式 与 TPerlRegEx

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

在Delphi 中使用正则表达式, 目前PerlRegEx 应该是首选

直接下载:

/download/TPerlRegEx.zip

安装方法:

1、先把解压的TPerlRegEx 里面的文件和PCRE里面的文件统统放在Delphi 的Lib 目录中.

2、然后再Delphi中Component-->Install component--->在unit file name中找到PerRegEx.pas(package file name就按照默认的dclusr.dpk即可)安装。再用同样的方法安装pcre.pas.

OK~!安装完毕,在组件条最后已经出现了JGSoft按钮,安装成功。

( you can create a new package or add the component to an existing package. Simply add the files PerlRegEx.pas and pcre.pas to the package.)

计划的学习步骤: 1、正则语法; 2、TPerlRegEx 功能.

//准备用这段简单的代码测试语法:

uses

PerlRegEx; //uses 正则表达式单元

procedure TForm1.FormCreate(Sender: TObject);

var

reg: TPerlRegEx; //声明正则表达式变量

begin

reg := TPerlRegEx.Create(nil); //建立

reg.Subject := 'sSsS'; //这是要替换的源字符串

reg.RegEx := 's'; //这是表达式, 在这里是准备替换掉的子串reg.Replacement := '◆'; //要替换成的新串

reg.ReplaceAll; //执行全部替换

ShowMessage(reg.Subject); //返回替换结果: ◆S◆S

FreeAndNil(reg); //因为建立时属主给了nil, 这里没有使用reg.Free end;

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

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;

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

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

相关文档
最新文档