Delphi中正则表达式之TPerlRegEx类的属性与方法(3) Start、Stop

//设定搜索范围: Start、Stop

var
 reg: TPerlRegEx;
begin
 reg := TPerlRegEx.Create(nil);
 reg.Subject := 'ababab';
 reg.RegEx  := 'ab';
 reg.Replacement := '◆';
 reg.Start := 1;
 reg.Stop := 2;
 while reg.MatchAgain do
 begin
  reg.Replace;
 end;

ShowMessage(reg.Subject); //返回: ◆abab

 reg.Subject := 'ababab';
 reg.Start := 3;
 reg.Stop := 4;
 while reg.MatchAgain do
 begin
  reg.Replace;
 end;

ShowMessage(reg.Subject); //返回: ab◆ab

 reg.Subject := 'ababab';
 reg.Start := 5;
 reg.Stop := 6;
 while reg.MatchAgain do
 begin
  reg.Replace;
 end;
 ShowMessage(reg.Subject); //返回: abab◆
 FreeAndNil(reg);
end;

时间: 2024-11-01 20:13:04

Delphi中正则表达式之TPerlRegEx类的属性与方法(3) Start、Stop的相关文章

Delphi中正则表达式之TPerlRegEx类的属性与方法(2) 关于子表达式

// MatchedExpression 与 SubExpressions[0] var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'CodeGear Delphi 2007'; reg.RegEx := 'Delphi'; while reg.MatchAgain do begin ShowMessage(reg.MatchedExpression); //Delphi; 这是匹配到的内容 Show

Delphi中正则表达式之TPerlRegEx类的属性与方法(1) 查找

//查找是否存在 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'CodeGear Delphi 2007 for Win32'; reg.RegEx := '\d'; if reg.Match then ShowMessage('找到了') else ShowMessage('没找到'); FreeAndNil(reg); end; //查找是否存在(方法2) var reg: TPerlReg

Delphi中正则表达式之TPerlRegEx类的属性与方法(7) Split函数

//字符串分割: Split var reg: TPerlRegEx; List: TStrings; begin List := TStringList.Create; reg := TPerlRegEx.Create(nil); reg.Subject := 'aaa,bbb,ccc,ddd'; reg.RegEx := ','; {这里可是运行相当复杂的分割符啊} reg.Split(List,MaxInt); {第一个参数读入的是 Subject; 第二个参数是分成 多少份} { 输入一

Delphi中正则表达式之TPerlRegEx类的属性与方法(6) EscapeRegExChars函数

// EscapeRegExChars 函数可以自动为特殊字符加转义符号 \ var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'C++Builer'; reg.RegEx := reg.EscapeRegExChars('C+') + '{2}'; {相当于 'C\+{2}'} reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subje

Delphi中正则表达式之TPerlRegEx类的属性与方法(5) Compile、Study

// Compile.Study var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.RegEx := 'ab'; reg.Options := [preCaseLess]; reg.Compile; {编译表达式} reg.Study; {Study 方法会检查是否编译, 如果没有编译则执行 Compile} reg.Replacement := '◆'; reg.Subject := 'abAbaB'; reg.Repl

Delphi中正则表达式之TPerlRegEx类的属性与方法(4) Replace

// Replace var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.RegEx := 'ab'; reg.Replacement := '◆'; reg.Subject := 'ababab'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆◆◆ reg.Subject := 'ababab'; //下面四行程序, 相当于 reg.ReplaceAll; while

在delphi中如何动态建立类的实例

本文为原创,如需转载,请注明作者和出处,谢谢!     在面向对象语言中,用两种方法建立类的实例:静态建立和动态建立.静态建立就是在程序中显式地建立类的实例,如c1 = TClass1.Create().而动态建立是在只知道类名的前题下建立类的实例.动态建立在实现上要比静态建立更灵活,因为动态建立无需引用被建立 类,并且更容易实现如多态等面向对象特性. 一.    动态建立类的实例 在delphi中动态建立类的实例可分为4步. 1. 声明一个从TPersistent继承的类.因为在注册类时要求必

Delphi中正则表达式语法(8) 引用子表达式

//准备: 我们先写一个搜索所有英文单词的表达式 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'one two three four five six seven eight nine ten'; reg.RegEx := '\b[A-Za-z]+\b'; //这个表达式就可以找到所有的英文单词 reg.Replacement := '◆'; reg.ReplaceAll; ShowMessag

Delphi中正则表达式语法(10) 选项

// preCaseLess: 不区分大小写, 相当于其他语言中的 i var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'abc ABC aBc'; reg.RegEx := 'abc'; reg.Replacement := '◆'; reg.Options := [preCaseLess]; //选项是集合类型的 reg.ReplaceAll; ShowMessage(reg.Subject);