C# 提取字符串的部分
我的绳子像 COMMAND=“HELP ME”TIMEOUT\u SECONDS=“30”APP\u ID=“SOMETHING RANDOM”COUNT=“100”RETVAL=“0”STDOUT=“我需要的数据”STDERR=“无错误”STATUS=“成功” 我希望能够提取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”“
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)