表達式中的括號將嚴重影響分割結果.
uses RegularExpressions; const FSourceText = '1: AAA 2: BBB 3: CCC'; // 分隔符將有三部分構成: 一個數字, 一個冒號, 一個空格 var Arr: TArray; str: string; procedure TForm1.Button1Click(Sender: TObject); begin Arr := TRegEx.Split(FSourceText, '\d: '); Memo1.Clear; for str in Arr do Memo1.Lines.Add(str); {結果: AAA BBB CCC } end; procedure TForm1.Button2Click(Sender: TObject); begin Arr := TRegEx.Split(FSourceText, '(\d): '); //括號中的部分被當做分割後的元素 Memo1.Clear; for str in Arr do Memo1.Lines.Add(str); { 1 AAA 2 BBB 3 CCC } end; procedure TForm1.Button3Click(Sender: TObject); begin Arr := TRegEx.Split(FSourceText, '(\d:) '); // 證實上面 Memo1.Clear; for str in Arr do Memo1.Lines.Add(str); { 1: AAA 2: BBB 3: CCC } end; procedure TForm1.Button4Click(Sender: TObject); begin Arr := TRegEx.Split(FSourceText, '(\d)(:) '); // 如果有兩個括號, 取後面括號的內容做元素 Memo1.Clear; for str in Arr do Memo1.Lines.Add(str); { : AAA : BBB : CCC } end; procedure TForm1.Button5Click(Sender: TObject); begin Arr := TRegEx.Split(FSourceText, '(\d)(:)( )'); // 證實上面 Memo1.Clear; for str in Arr do Memo1.Lines.Add(str); { AAA BBB CCC } end;