gpt4 book ai didi

C# 性能 - 正则表达式与多个拆分

转载 作者:行者123 更新时间:2023-11-30 18:18:33 25 4
gpt4 key购买 nike

<分区>

我正在处理相当大的字符串集,我必须尽快处理。

格式很固定:

[name]/[type]:[list ([key] = [value],)]

 [name]/[type]:[key]

希望我的表述没问题。这意味着我有一个词(在我的例子中我称之为 Name),然后是一个斜杠,然后是另一个词(我称之为 Type),然后是一个冒号,它后面可以是逗号分隔的键值对列表 (key = value),也可以是单个键。

NameType 不能包含任何空格,但 keyvalue 字段可以。

目前我正在使用 Regex 来解析这些数据,并进行拆分:

var regex = @"(\w+)\/(\w+):(.*)";
var r = new Regex(regex, RegexOptions.IgnoreCase | RegexOptions.Singleline);
var m = r.Match(Id);
if (m.Success) {
Name = m.Groups[1].Value;
Type= m.Groups[2].Value;

foreach (var intern in m.Groups[3].Value.Split(','))
{
var split = intern.Trim().Split('=');
if (split.Length == 2)
Items.Add(split[0], split[1]);
else if (split.Length == 1)
Items.Add(split[0], split[0]);
}
}

现在我知道这不是最可选的情况,但我不确定哪种情况最快:

  • 首先用 : 拆分字符串,然后用 / 拆分第一个元素,用 , 拆分第二个,然后处理后一个列表并再次拆分 =
  • 按原样使用当前混合物
  • 使用完全基于正则表达式的

当然我愿意接受建议,我的主要目标是实现对这个单个字符串的最快处理。

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