如何从格式化字符串中提取值?

Sre*_*har 1 c# parsing input

我有一个字符串数组,值如下

sNames[0] = "Root | [<root>] | [ID = 1]";
sNames[1] = "Planning | [Root] | [ID = 2]";
Run Code Online (Sandbox Code Playgroud)

从这个我想提取ID值.. 1,2 ..

现在我这样做:

foreach (var s in sNames)
{
  int id = Convert.ToInt32(s.Split('|')[2].Split('=')[1].Substring(1,1));
  ...
}
Run Code Online (Sandbox Code Playgroud)

还有其他好办法吗?

谢谢

Tal*_*joe 5

您可以使用正则表达式来查找ID(匹配()部分可能不是100%正确 - 练习留给读者).

var regex = new Regex(@"\[ID = (?<id>[0-9]+)\]");
var ids = sNames.Select(s => Convert.ToInt32(regex.Match(s).Groups["id"].Value));
Run Code Online (Sandbox Code Playgroud)