Delphi 正则表达式语法

本文详细介绍如何在Delphi中使用PerlRegEx组件进行正则表达式的操作,并提供了详细的安装步骤及实例代码,涵盖大小写敏感性设置、重复与选择匹配、范围限定等关键语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值