c# -使用RegEx将字符串拆分为字符串数组,并创建字典

本文关键字:字符串 创建 字典 string 使用 RegEx 拆分 数组 | 更新日期: 2023-09-27 18:08:37

我如何创建一个RegEx,将分割字符串格式就像下面的字符串数组?字符串的键和值应该用分号分隔,如果没有','分隔键和值,则不应该通过RegEx测试。

字符串看起来像这样:

var splitMe = "[Key1,Value1][Key2,Value2][Key3,Value3][Key4,Value4]";
var splitedArray = Regex.Split(/'RegEx Here'/);
//Output value should like this one ["Key1,Value1","Key2,Value2","Key3,Value3","Key4,Value4"]
//this value also will be the key and value of a Dictionary<string,string>

c# -使用RegEx将字符串拆分为字符串数组,并创建字典<string >

使用Regex.Matches与Linq链接直接获取字典会更简单:

var input = "[Key1,Value1][Key2,Value2][Key3,Value3][Key4,Value4]";
var dictionary = Regex.Matches(input, @"'[(?<key>'w+),(?<value>'w+)']")
    .Cast<Match>()
    .ToDictionary(x => x.Groups["key"].Value, x => x.Groups["value"].Value);

我想这对你很有用:

'[('w+,'w+)']

Regex101

我不确定你在键和值中可能有什么数据,但也许下面会更包容?

'[([^,]+?,[^,]+?)']

如果你想使用分割,你可以匹配你需要的:

('[|']'[|'])