程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 正則表達式語法(2): 或者與重復

Delphi 正則表達式語法(2): 或者與重復

編輯:Delphi

 // | 號的使用, | 是或者的意思

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.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
 reg.RegEx  := 'ab+'; //使用了 + 記號, 這裡是允許 a 後面有 1 個或多個 b
 reg.Replacement := '◆';
 reg.ReplaceAll;
 ShowMessage(reg.Subject); //返回: a aa aaa aaaa ◆ ◆ ◆a a呀a
 FreeAndNil(reg);
end;

  // * 的使用, * 是重復 0 個或多個

var
 reg: TPerlRegEx;
begin
 reg := TPerlRegEx.Create(nil);
 reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
 reg.RegEx  := 'ab*'; //使用了 * 記號, 這裡是允許 a 後面有多個或者沒有 b
 reg.Replacement := '◆';
 reg.ReplaceAll;
 ShowMessage(reg.Subject); //返回: ◆ ◆◆ ◆◆◆ ◆◆◆◆ ◆ ◆ ◆◆ ◆呀◆
 FreeAndNil(reg);
end;

  // ? 的使用, ? 是重復 0 個或 1 個

var
 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);
end;

  //大括號的使用<2>

var
 reg: TPerlRegEx;
begin
 reg := TPerlRegEx.Create(nil);
 reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
 reg.RegEx  := 'a{2,4}'; //這裡指定重復 2-4 次
 reg.Replacement := '◆';
 reg.ReplaceAll;
 ShowMessage(reg.Subject); //返回: a ◆ ◆ ◆ ab abb abbba a呀a
 FreeAndNil(reg);
end;

  //大括號的使用<3>

var
 reg: TPerlRegEx;
begin
 reg := TPerlRegEx.Create(nil);
 reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
 reg.RegEx  := 'a{1,}'; //n 個或多個, 這裡是 1 個或多個
 reg.Replacement := '◆';
 reg.ReplaceAll;
 ShowMessage(reg.Subject); //返回: ◆ ◆ ◆ ◆ ◆b ◆bb ◆bbb◆ ◆呀◆
 FreeAndNil(reg);
end;

  //上面這個 {1,} 和 + 是等效的;

  //還有 {0,1} 與 ? 是等效的;

  //{0,} 和 * 是等效的


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved