Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 提取字符串的部分_C#_C# 4.0 - Fatal编程技术网

C# 提取字符串的部分

C# 提取字符串的部分,c#,c#-4.0,C#,C# 4.0,我的绳子像 COMMAND=“HELP ME”TIMEOUT\u SECONDS=“30”APP\u ID=“SOMETHING RANDOM”COUNT=“100”RETVAL=“0”STDOUT=“我需要的数据”STDERR=“无错误”STATUS=“成功” 我希望能够提取STDOUT,STDERR和状态。我该怎么做?string input2=@“COMMAND=”“HELP ME”“TIMEOUT\u SECONDS=”“30”“APP\u ID=”“随机数”“COUNT=”“100”“

我的绳子像

COMMAND=“HELP ME”TIMEOUT\u SECONDS=“30”APP\u ID=“SOMETHING RANDOM”COUNT=“100”RETVAL=“0”STDOUT=“我需要的数据”STDERR=“无错误”STATUS=“成功”

我希望能够提取
STDOUT
STDERR
状态
。我该怎么做?

string input2=@“COMMAND=”“HELP ME”“TIMEOUT\u SECONDS=”“30”“APP\u ID=”“随机数”“COUNT=”“100”“RETVAL=”“0”“STDOUT=”“数据我需要”“STDERR=”“无错误”“STATUS=”“SUCCESS”“;
string input2 = @"COMMAND=""HELP ME"" TIMEOUT_SECONDS=""30"" APP_ID=""SOMETHING RANDOM"" COUNT=""100"" RETVAL=""0"" STDOUT=""DATA I NEED"" STDERR=""NO ERROR"" STATUS=""SUCCESS""";

var dict = Regex.Matches(input2, @"(.+?)=""(.+?)""").Cast<Match>()
          .ToDictionary(m => m.Groups[1].Value.Trim(), 
                        m => m.Groups[2].Value.Trim());

Console.WriteLine(dict["STDOUT"]);
Console.WriteLine(dict["STATUS"]);
var dict=Regex.Matches(input2,@“(.+?)=”(.+?)”)“”.Cast() .ToDictionary(m=>m.Groups[1]。Value.Trim(), m=>m.Groups[2].Value.Trim(); 控制台写入线(dict[“STDOUT”]); 控制台写入线(dict[“状态]);
使用以下功能:

public static Dictionary<string,string> GetValues(string command)
{
   Dictionary<string,string> output = new    Dictionary<string,string>();
   string[] splitCommand =  command.Split(" ");

   foreach(var item in splitCommand)
   {
      output.Add(item.Split("=")[0] , item.Split("=")[1]);
   }

  return output;
}
publicstaticdictionary GetValues(string命令)
{
字典输出=新字典();
string[]splitCommand=command.Split(“”);
foreach(splitCommand中的变量项)
{
output.Add(item.Split(“”[0],item.Split(“”[1]);
}
返回输出;
}
当您想要获取值时,请使用以下函数

Dictionary<string,string> output = YourClass.GetValue(command);
string stdout = output["STDOUT"];
string etderr= output["ETDERR"];
string status = output["STATUS"];
Dictionary output=YourClass.GetValue(命令);
字符串stdout=输出[“stdout”];
字符串etderr=输出[“etderr”];
字符串状态=输出[“状态”];

我没有访问编译器的权限。因此,可能存在错误。但总体功能将如下所示。

您可以尝试以下正则表达式:

(?<=(?:STDOUT|STDERR|STATUS)\=")([^"]+)
这里,在regex的这一部分:

(?:STDOUT|STDERR|STATUS)

您还可以指定需要其值的键(上述3键除外)。

我的字符串非常有序。如果我得到一些具体的东西,这将是有用的,因为我是新的这一点。谢谢,太谢谢你了!还在学这个行业:)用这个。工作起来很有魅力。即使逃离逃离序列是痛苦的。
using System.Text.RegularExpressions;
(?:STDOUT|STDERR|STATUS)