我有一个这样的字符串(我的阅读行):


  阿尔法:10662 Beta:-64 gama:70679 Delta:1001


我需要使用其中一些数字作为参数,但是这些数字的长度可以变化。我可以想象,我可以做到的提取价值阿尔法:

str1 = readline.Substring(6, 5);


但是,如果beta和alpha的值可以变化,我将如何获得gamma的值?

最佳答案

您可以使用正则表达式来匹配所有name:value对,并使用捕获组来提取名称和值:

var readline = "alpha: 10662 beta: -64 gamma: 70679 delta: 1001";
var matches = Regex.Matches(readline, @"(?<parameter>\w*):\s*(?<value>-?\d*)");
var dictionary = new Dictionary<string,int>();
foreach (Match m in matches)
{
  dictionary.Add(m.Groups["parameter"].Value,int.Parse(m.Groups["value"].Value));
}
Console.WriteLine(dictionary["gamma"]); // output: 70679

10-07 19:24
查看更多