Delphi2009中安装正则表达式TPerlRegEx的方法

在 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 的添加方式可以省略第二步.

安装后发现,需要 pcre3.dll 文件, 官网上说生成的程序可以不用这个DLL文件的。
看了一下程序发现,它默认的是使用 7.0 的方式,也就是使用 pcre3.dll 文件。
Delphi2009的话,可以更改一下设置使用OBJ链接库即可。
在pcre.pas里,有如下几句

// Define PCRE_STATICLINK to link the OBJ files with PCRE 7.7.
// Due to bugs in the Delphi compiler, you may get an internal error if install TPerlRegEx into a design time package,
// and you don't put TPerlRegEx into a runtime package either.
// You can use PCRE_STATICLINK if you don't use packages at all (which means you don't install it into the IDE and you don't drop TPerlRegEx on a form)
// You can also use PCRE_STATICLINK if you put the component into a runtime package
//{$DEFINE PCRE_STATICLINK}// Define PCRE_LINKDLL to use pcre3.dll
{$DEFINE PCRE_LINKDLL}
//------------------------改为下面这样------------------------
{$DEFINE PCRE_STATICLINK}           // 去掉原先的注释,使用7.7版本
//{$DEFINE PCRE_LINKDLL}                // 加上注释 不用7.0版本了

修改后,重新编译安装这个控件,即可。