//|表示或者 procedure TForm1.btn1Click(Sender: TObject); var Reg : TPerlRegEx; begin Reg := TPerlRegEx.Create(nil); with Reg do begin Subject := '我和你,You and me!'; RegEx := '我|me'; //把我和me全部换成俺 Replacement := '俺'; ReplaceAll; //此句不能少,否则不执行 ShowMessage(Subject); //俺和你,You and 俺! FreeAndNil(Reg); end; end; //+表示一个或多个 procedure TForm1.btn2Click(Sender: TObject); var Reg: TPerlRegEx; begin Reg := TPerlRegEx.Create(nil); with Reg do begin Subject := '我我和你,You and me!'; RegEx := '我+'; //+无效果 Replacement := '俺'; ReplaceAll; //此句不能少,否则不执行 ShowMessage(Subject); //俺俺和你,You and me! FreeAndNil(Reg); end; Reg := TPerlRegEx.Create(nil); with Reg do begin Subject := 'aabb cc dd abcd efg!'; RegEx := 'ab+'; //类似于ab后面可以有无限个b,如ab,abb,abbb... Replacement := 'K'; //注意下面与*的区别 ReplaceAll; //此句不能少,否则不执行 ShowMessage(Subject); //aK cc dd Kcd efg! FreeAndNil(Reg); end; end; //*表示0个或多个 procedure TForm1.btn3Click(Sender: TObject); var Reg: TPerlRegEx; begin Reg := TPerlRegEx.Create(nil); with Reg do begin Subject := 'aabb cc dd abcd efg!'; RegEx := 'ab*'; //类似于a后面可以有无限个b,如a,ab,abb,abbb... Replacement := 'K'; //注意下面与*的区别 ReplaceAll; //此句不能少,否则不执行 ShowMessage(Subject); //KK cc dd Kcd efg! FreeAndNil(Reg); end; end; //?表示重复 0个或1个 procedure TForm1.btn4Click(Sender: TObject); var Reg: TPerlRegEx; begin Reg := TPerlRegEx.Create(nil); with Reg do begin Subject := 'aabb cc dd abcd efg! abab abbb'; RegEx := 'ab?'; //类似于a后可以有0个b或1个b Replacement := 'K'; //注意下面与*的区别 ReplaceAll; //此句不能少,否则不执行 ShowMessage(Subject); //KKb cc dd Kcd efg! KK Kbb FreeAndNil(Reg); end; end; //{}指定重得数 procedure TForm1.btn5Click(Sender: TObject); var Reg: TPerlRegEx; begin Reg := TPerlRegEx.Create(nil); with Reg do begin Subject := 'a aa aaa aaaa ab abb abbba a呀a'; // RegEx := 'ab{2}'; //这里指定重复 3 次 reg.RegEx := 'ab{3,4}'; //这里指定重复 2-4 次 abbb Replacement := '◆'; ReplaceAll; ShowMessage(reg.Subject); FreeAndNil(reg); end; end; //上面这个 {1,} 和 + 是等效的; //还有 {0,1} 与 ? 是等效的; //{0,} 和 * 是等效的