在 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 功能.
PerlRegEx;
TForm1FormCreate(Sender: TObject);
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regOptions := [preCaseLess]; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regOptions := [preCaseLess]; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
|
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := 'a'; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := 'a'; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := 'a'; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
|
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ;
regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ;
regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ;
regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject); FreeAndNil(reg); ;
reg: TPerlRegEx;
reg := TPerlRegExCreate(); regSubject := + + ; regRegEx := ; regReplacement := ; regReplaceAll; ShowMessage(regSubject);
FreeAndNil(reg); ;
|
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := 'phi$'; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; regReplacement := ;
regReplaceAll;
ShowMessage(regSubject);
FreeAndNil(reg);
;
// EscapeRegExChars 函数可以自动为特殊字符加转义符号 /
reg: TPerlRegEx;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := regEscapeRegExChars() + '{2}'; {相当于 'C/+{2}◆';
regReplaceAll;
ShowMessage(regSubject); {返回: ◆Builer}
FreeAndNil(reg);
;
//字符串分割: Split
reg: TPerlRegEx;
List: TStrings;
List := TStringListCreate;
reg := TPerlRegExCreate();
regSubject := ;
regRegEx := ; {这里可是运行相当复杂的分割符啊}
regSplit(List,MaxInt); {第一个参数读入的是 Subject; 第二个参数是分成多少份}
{ 输入一个最大整数, 表示能分多少就分多少}
ShowMessage(ListText);
{返回:
aaa
bbb
ccc
ddd
}
FreeAndNil(reg);
ListFree;
;