我有一个如下所示的数据,我需要从那里按键提取数据。
string filter=[[LUB,=,COMMERCIAL],AND,[Pgm,=,PRIVATE],AND,[Regn,=,Rasna],AND,[Month,=,06],AND,[Year,=,2018],AND,[Bywhat,=,M]]
我检查了类似的情况,只能得到下面的代码,它没有给出基于键的结果
我试过了
Regex.Match(filter, @"\[(.*?)\]")
如果我给Regn
,我需要得到Rasna
如果我给 LUB
,它应该给 COMMERCIAL
之类的
最佳答案
尝试以下操作:
string filter="[[LUB,=,COMMERCIAL],AND,[Pgm,=,PRIVATE],AND,[Regn,=,Rasna],AND,[Month,=,06],AND,[Year,=,2018],AND,[Bywhat,=,M]]";
string pattern = @"\[(?'key'\w+),=,(?'value'[^\]]+)";
MatchCollection matches = Regex.Matches(filter, pattern);
foreach (Match match in matches.Cast<Match>())
{
Console.WriteLine("Key : '{0}', Value : '{1}'", match.Groups["key"].Value, match.Groups["value"].Value);
}
Console.ReadLine();
Dictionary<string, string> dict = matches.Cast<Match>().GroupBy(x => x.Groups["key"].Value, y => y.Groups["value"].Value)
.ToDictionary(x => x.Key, y => y.FirstOrDefault());
关于c# - 根据键提取另一个方括号内方括号内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56398389/