TPerlRegEx.Split 方法支援以正則表達式為分隔符進行字串分割,功能遠超傳統單一字元分割。
var
reg: TPerlRegEx;
List: TStrings;
begin
List := TStringList.Create;
reg := TPerlRegEx.Create(nil);
reg.Subject := 'aaa,bbb,ccc,ddd';
reg.RegEx := ','; { 這裡可用任意複雜正則作為分割符 }
reg.Split(List, MaxInt); { 參數1: 目標字串列表; 參數2: 最大分割數,MaxInt 表無限制 }
ShowMessage(List.Text);
{ 輸出:
aaa
bbb
ccc
ddd
}
FreeAndNil(reg);
List.Free;
end;
{ 多種分隔符混合:逗號、分號、空白 }
reg.RegEx := '[,;\s]+';
reg.Split(List, MaxInt);
{ 保留分隔符 (使用前瞻/後顧) }
reg.RegEx := '(?=[,;])|(?<=[,;])';
reg.Split(List, MaxInt);
| 參數 | 型別 | 說明 |
|---|---|---|
| List | TStrings | 接收分割結果的字串列表 |
| Limit | Integer | 最大分割段數,MaxInt 表示不限制 |
Split 方法內部會自動處理 Subject 屬性,無需手動呼叫 Match,是字串分割的最便捷方式。