Delphi 正则表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Delphi 正则表达式语法(1): 关于大小写与中文
//替换一般字符串
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := '我爱DELPHI, 但Delphi不爱我!';
reg.RegEx := 'Delphi';
reg.Replacement := '◆';
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: 我爱DELPHI, 但◆不爱我!
FreeAndNil(reg);
end;
//不区分大小写
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := '我爱DELPHI, 但Delphi不爱我!';
reg.RegEx := 'Delphi';
reg.Replacement := '◆';
reg.Options := [preCaseLess]; //不区分大小的设定, 默认是区分的
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: 我爱◆, 但◆不爱我!
FreeAndNil(reg);
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆◆DELPHI, ◆Delphi◆◆◆!
FreeAndNil(reg);
end;
//我测试了不同的汉字, 除了乱以外,没有规律; 所有如果操作汉字暂时不要指定 preCaseLess
Delphi 正则表达式语法(2): 或者与重复
// | 号的使用, | 是或者的意思
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007';
reg.RegEx := 'e|Delphi|0'; //使用了 | 记号
reg.Replacement := '◆';
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: Cod◆G◆ar ◆ 2◆◆7
FreeAndNil(reg);
end;
// + 的使用, + 是重复 1 个或多个
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'a?';//使用了 ? 记号
reg.Replacement := '◆';
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆◆◆◆◆◆◆◆◆◆◆b ◆bb ◆bbb◆◆呀◆
FreeAndNil(reg);
end;
//大括号的使用<1>, 指定重复数
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'a{3}'; //这里指定重复 3 次
reg.Replacement := '◆';
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: a aa ◆◆a ab abb abbba a 呀a
FreeAndNil(reg);
FreeAndNil(reg);
end;
//上面这个 {1,} 和 + 是等效的;
//还有 {0,1} 与 ? 是等效的;
//{0,} 和 * 是等效的
Delphi 正则表达式语法(3): 匹配范围
// [A-Z]: 匹配所有大写字母
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := '[A-Z]';
reg.Replacement := '◆';
reg.ReplaceAll;
ShowMessage(reg.Subject); //返回: ◆ode◆ear ◆elphi 2007 for ◆in32
FreeAndNil(reg);
end;
// [a-z]: 匹配所有小写字母
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);