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

Delphi 正則表達式語法(8): 引用子表達式 - 也叫反向引用

編輯:Delphi

 //准備: 我們先寫一個搜索所有英文單詞的表達式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;
 ShowMessage(reg.Subject); //返回: ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆
 FreeAndNil(reg);
end;
//假如我們只需要每個單詞的第一個字母呢? 這要用到子表達式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])[A-Za-z]*b'; //注意表達式中有子表達式, 在 () 中
 reg.Replacement := '1'; // 1 引用了第一個子表達式
 reg.ReplaceAll;
 ShowMessage(reg.Subject); //返回: o t t f f s s e n t
 FreeAndNil(reg);
end;
//表達式中可以有多個子表達式var
 reg: TPerlRegEx;
begin
 reg := TPerlRegEx.Create(nil);
 reg.Subject := 'one two three ten';
 reg.RegEx  := '(t)(w+)'; //這個表達式分別找出三個或四個字母的單詞
 reg.Replacement := '[1-2:]'; // 12 分別引用對應的子表達式; 引用整個表達式
 reg.ReplaceAll;
 ShowMessage(reg.Subject); //返回: one [t-wo:two] [t-hree:three] [t-en:ten]
 FreeAndNil(reg);
end;
//在後面介紹 TPerlRegEx 類的方法時, 關於對 (子表達式) 的引用還有更多話題.


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