gpt4 book ai didi

c# - 如何使用正则表达式将字符串 `{{key.value}}` 拆分为两个字符串 `key` 和 `value` ?

转载 作者:行者123 更新时间:2023-12-02 15:49:56 24 4
gpt4 key购买 nike

我的问题:

这是一个类似的列表:

var list = "{{data1.id}},{{data1.value}},{{data2.name}},{{data2.value}} ".Split(',');

enter image description here

我希望得到一个Dictionary<string,IEnumerable<string>>数据如:

var results = new Dictionary<string, IEnumerable<string>>()
{
{"data1",new[]{"id","value"}},
{"data2",new[]{"name","value"}},
};

我尝试过的:

    var regex = new Regex("{{*.*}}");
foreach (var e in list)
{
var match = regex.Matches(e);
}

我可以使用正则表达式来获取匹配数据,但我不知道如何获取 key data1和值id

最佳答案

如果您想检索捕获的部分内容,则需要使用捕获组,例如:

var regex = new Regex(@"{{(\w+)\.(\w+)}}");

请注意,我更改了正则表达式以仅捕获“单词”字符,并且您必须将 . 更改为 \. 因为点字符在正则表达式中具有特殊含义(它匹配任何字符)。我进一步使用字符串的 @ 说明符来启用“逐字模式”,否则所有反斜杠都必须是双反斜杠 (\\)

然后您可以从返回的 Match 对象中检索捕获的值,例如:

foreach (var e in list)
{
var match = regex.Match(e);
if (match.Success)
{
Console.WriteLine($"{match.Groups[1]} {match.Groups[2]}");
}
}

关于c# - 如何使用正则表达式将字符串 `{{key.value}}` 拆分为两个字符串 `key` 和 `value` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59543351/

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