我希望检索(在运行时)拆分字符串的分隔符,例如:
aStr := 'foo=bar';
aParts := aStr.Split(['=', '!', '<', '>', '^']);
aParts[0]
为foo
,aParts[1]
为bar
,但谁是分隔符?有什么方法可以检索用于拆分字符串的字符:=
?
答案 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;