gpt4 book ai didi

c# - 如何将包含 '=' 的字符串添加到字符串列表中?

转载 作者:行者123 更新时间:2023-12-01 06:37:01 26 4
gpt4 key购买 nike

正则表达式用于解析包含“=”的文本,并将分割后的字符串放入类似键值对的字符串列表中。

但是如果value中包含'=',则不能使用list.add(key3+'='+'number=10');

key1 this's done
key2 that costs 10 dollars
key3 number=10 // invalid data, error prompt.
...

如何解决?谢谢。

编辑:

谢谢大家的帮助。

如果我必须在 key 中添加一个包含“=”的字符串,我该如何解决?

例如,要解析的文本可能是这样的:

maleConsumer=john 1
maleConsumer=eric 2
femaleConsumer=mary 2
maleConsumer=john 8
...

我使用正则表达式 reg='\b\S+\b' 解析文本并将maleconsumer=john放入字符串列表的键中,这样在字符串列表中,约翰的记录将是:

maleConsumer=john 9 // maleconsumer=john is key, 9 is value

这种情况我该怎么办?

再次感谢大家的帮助。

最佳答案

这在 Delphi 中运行良好

var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Add('key1=this''s done');
sl.Add('key2=that costs 10 dollars');
sl.Add('key3=number=10');
ShowMessage(sl.Values['key3']); // Displays number=10
finally
sl.Free;
end;
end;

这更好并且仍然有效

var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Values['key1'] := 'this''s done';
sl.Values['key2'] := 'that costs 10 dollars';
sl.Values['key3'] := 'number=10';
ShowMessage(sl.Values['key3']); // Displays number=10
finally
sl.Free;
end;
end;

顺便说一句,您可以使用 TStringList.NameValueSeparator 指定分隔符

使用 NameValueSeparator 允许键中包含 =

var
sl: TStringList;
begin
sl := TStringList.Create;
try
// Select a separater you are sure will never be used
sl.NameValueSeparator := '|';

sl.Values['maleConsumer=john'] := '1';
sl.Values['maleConsumer=eric'] := '2';
sl.Values['femaleConsumer=mary'] := '2';
sl.Values['maleConsumer=john'] := '8';

ShowMessage(sl.Values['maleConsumer=john']); // Displays 8
finally
sl.Free;
end;
end;

关于c# - 如何将包含 '=' 的字符串添加到字符串列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4669098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com