//准備: 我們先寫一個搜索所有英文單詞的表達式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
//在後面介紹 TPerlRegEx 類的方法時, 關於對 (子表達式) 的引用還有更多話題.
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;