正则表达式的用法(PerlRegEx) 官方网站: http://www.regular-expressions.info/delphi.html 直接下载: http://www.regular-expressions.info/download/TPerlRegEx.zip 安装方法: 1、先把解压的 TPerlRegEx 文件夹放一个合适的地方, 我放在了 Delphi 的 Imports 目录中. 2、目前最新 For Win32 的版本是对 Delphi 2006 的, 2007 也能用. 打开 PerlRegExD2006.dpk, 提示缺少资源文件, 没关系; 在 Project Manager 窗口中的 PerlRegExD2006.bpl 上点击右键, 执行 Install; 这时在 Tool Palette 的列表中已经有了 TPerlRegEx, 在 JGsoft 组. 3、Tools -> Options -> Environment Options -> Delphi Options -> Library-Win32 -> Library path -> 添加路径: .../Imports/TPerlRegEx 4、可以使用了! 直接 uses PerlRegEx 或从 Tool Palette 添加都可以. 如果不喜欢 Tool Palette 的添加方式可以省略第二步. 计划的学习步骤: 1、正则语法; 2、TPerlRegEx 功能. 字符替换
//先测试一下:usesPerlRegEx; //uses 正则表达式单元procedure TForm1.FormCreate(Sender: TObject);varreg: TPerlRegEx; //声明正则表达式变量beginreg := TPerlRegEx.Create(nil); //建立reg.Subject := 'sSsS'; //这是要替换的源字符串 reg.RegEx := 's'; //这是表达式, 在这里是准备替换掉的子串 reg.Replacement := '◆'; //要替换成的新串 reg.ReplaceAll; //执行全部替换ShowMessage(reg.Subject); //返回替换结果: ◆S◆SFreeAndNil(reg); //因为建立时属主给了 nil, 这里没有使用 reg.Freeend;
字串的绝对匹配用法
procedure TForm1.Button1Click(Sender: TObject);begin with PerlRegEx1 do begin RegEx:=Edit1.Text; Subject:=Edit2.Text; //匹配属生的RegEx与Subject if Match then ShowMessage('Match') else ShowMessage('Not Match'); end;end;
with PerlRegEx1 do begin
Subject := 'I like to hang out at Foo bar';
RegEx := '([A-Za-z]+) bar';//([A-Za-z]+) 这个表示第一个字符大写,后面不管
Replacement := ' /1 is the name of the bar I like';
if Match then Replace;
ShowMessage(Subject);
end;
分裂字串(把一个字串按指定分隔号裂开) ---------------------------------加如文本------ One,Two,Three,Four你, 我, 他你们, 我们, 他们 ---------------------------------------------- procedure TForm1.Button2Click(Sender: TObject);begin PerlRegEx1.Subject:=Memo1.Lines.GetText; PerlRegEx1.RegEx:=','; PerlRegEx1.Split(Memo2.Lines,0);end; -----裂开后,每个子字串都占一行------------- OneTwoThreeFour你 我 他你们 我们 他们 ----------代码如下----------------- begin PerlRegEx1.Subject:=Memo1.Lines.GetText; PerlRegEx1.RegEx:=','; PerlRegEx1.Split(Memo2.Lines,0);//0表示源字串中的所有子字串end; ---------------------------------- 这个功能在做文本数据库时最好用->把文本裂开后存入数据表中
--本文转自月夜我飞翔的博客:http://blogold.chinaunix.net/u/941/showart_1742800.html
