表達式中的括號將嚴重影響分割結果.
uses RegularExpressions;
const
FSourceText = '1: AAA 2: BBB 3: CCC'; // 分隔符將有三部分構成: 一個數字, 一個冒號, 一
個空格var
Arr: TArray<string>;
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;
string>