//准備: 我們先寫一個搜索所有英文單詞的表達式 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; //假如我們只需要每個單詞的第一個字母呢? 這要用到子表達式 // www.bianceng.cn 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:\0]'; // \1\2 分別引用對應的子表達式; \0 引用整個表達式 reg.ReplaceAll; ShowMessage(reg.Subject); //返回: one [t-wo:two] [t-hree:three] [t-en:ten] FreeAndNil(reg); end; //在後面介紹 TPerlRegEx 類的方法時, 關於對 (子表達式) 的引用還有更多話題.