在 Delphi 中使用正则表达式, 目前 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 功能.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
GroupBox1: TGroupBox;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//先测试一下:
uses
PerlRegEx; //uses 正则表达式单元
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TPerlRegEx; //声明正则表达式变量
begin
reg := TPerlRegEx.Create; //建立,D7下貌似不能TPerlRegEx.Create(nil)
if Memo1.Text <> '' then //如果源字符串为空将会出错,所以加判断语句
begin
reg.Subject := Memo1.Text; //这是要替换的源字符串,例如'sSsS'
reg.RegEx := Edit1.Text; //这是表达式, 在这里是准备替换掉的子串,例如's'
reg.Replacement := Edit2.Text; //要替换成的新串,例如'◆'
reg.ReplaceAll; //执行全部替换
ShowMessage(reg.Subject); //用消息框显示替换结果: ◆S◆S
Memo1.Text:=reg.Subject; //用memo显示替换结果
end
else
reg.Free; //D7下貌似不能 FreeAndNil(reg)
end;
procedure TForm1.Button2Click(Sender: TObject); //清空
begin
Memo1.Clear;
Edit1.Clear;
Edit2.Clear;
end;
end.