用字符串拆分字符串并检索值c#

时间:2017-10-27 10:46:48

标签: c# string

我有以下字符串

string arguments = "-p=C:\Users\mplususer\Documents\SharpDevelop Projects\o9\o9\bin\Debug\o9.exe""-t=False""-r=TestRun";

我想用"-t="拆分字符串并获取false

if (arguments.Contains("-t="))
{
    string[] value = arguments.Split(new string[] { "\"-t=" }, StringSplitOptions.None);
    if (value.Length != 0)
    {
        mode = value[1].Replace("\"", "");
    }
}

3 个答案:

答案 0 :(得分:2)

只需制作IndexOf

var i = myString.IndexOf("-t=") + 3;
if(i != -1)
    value = myString.SubString(i, myString.IndexOf("\"", i) - i);

你也可以使用正则表达式:

var r = new Regex("-t (true|false)");
var g = r.Match(myString).Groups;
if(g.Count > 1)
    value = Convert.ToBoolean(g[1].ToString());

答案 1 :(得分:1)

你也可以这样做,就像没有正则表达式的方法一样:

string arguments = "-p=C:\\Users\\mplususer\\Documents\\SharpDevelop Projects\\o9\\o9\\bin\\Debug\\o9.exe\" \"-t=False\" \"-r=TestRun";

if (arguments.Contains("-t="))
{
    string splitted = arguments.Split(new string[] { "\"-t=" }, StringSplitOptions.None)[1];
    string value = splitted.Split(new string[] { "\"" }, StringSplitOptions.None)[0];
} 

答案 2 :(得分:0)

当你分开" -t"时,你得到两个片段。该分隔符后面的片段还包含一个" -r"选项 - 这是您可能会遇到的问题。

如果你知道那" -t"选项总是后跟" -r",您可以简单地拆分new string[] { "\"-t=", "\"-r=" }。然后你得到三个片段,你仍然想要第二个(在索引1处)。