Delphi Split():将分隔符检索到分隔符列表中

时间:2017-07-28 16:47:14

标签: delphi

我希望检索(在运行时)拆分字符串的分隔符,例如:

aStr := 'foo=bar';
aParts := aStr.Split(['=', '!', '<', '>', '^']);

aParts[0]fooaParts[1]bar,但谁是分隔符?有什么方法可以检索用于拆分字符串的字符:=

1 个答案:

答案 0 :(得分:1)

我认为你需要分别解析分隔符。例如,以下代码将您的分隔符放入名为separators的第二个数组中。

var
  astr: string;
  aparts: System.TArray<System.string>;
  separators: System.TArray<System.string>;
  findindex: integer;
  findpos: integer;
begin
  astr := 'foo=bar!abc^def';
  aparts := astr.Split(['=', '!', '<', '>', '^']);
  findindex := 1;
  repeat
    findpos := astr.IndexOfAny(['=', '!', '<', '>', '^'], findindex);
    if findpos >= 1 then
    begin
      SetLength(separators, length(separators) + 1);
      separators[length(separators) - 1] := astr.Substring(findpos, 1);
    end;
    findindex := findpos + 1;
  until findpos = -1;
end;