对TRegEx.Split()函数的探讨2013-11-11 cnblogs 万一表达式中的括号将严重影响分割结果.
uses RegularExpressions; constFSourceText = "1: AAA 2: BBB 3: CCC"; // 分隔符将有三部分构成: 一个数字, 一个冒号, 一个空格varArr: TArray<string>;str: string; procedure TForm1.Button1Click(Sender: TObject);beginArr := TRegEx.Split(FSourceText, "d: "); Memo1.Clear;for str in Arr do Memo1.Lines.Add(str);{结果:AAABBBCCC}end; procedure TForm1.Button2Click(Sender: TObject);beginArr := TRegEx.Split(FSourceText, "(d): "); //括号中的部分被当做分割后的元素 Memo1.Clear;for str in Arr do Memo1.Lines.Add(str);{1AAA2BBB3CCC}end; procedure TForm1.Button3Click(Sender: TObject);beginArr := TRegEx.Split(FSourceText, "(d:) "); // 证实上面 Memo1.Clear;for str in Arr do Memo1.Lines.Add(str);{1:AAA2:BBB3:CCC}end; procedure TForm1.Button4Click(Sender: TObject);beginArr := TRegEx.Split(FSourceText, "(d)(:) "); // 如果有两个括号, 取后面括号的内容做元素 Memo1.Clear;for str in Arr do Memo1.Lines.Add(str);{:AAA:BBB:CCC}end; procedure TForm1.Button5Click(Sender: TObject);beginArr := TRegEx.Split(FSourceText, "(d)(:)( )"); // 证实上面 Memo1.Clear;for str in Arr do Memo1.Lines.Add(str);{AAABBBCCC}end;string>