C# WindowsForms-搜索“窗口窗体”;参数“;在一个文本框中

C# WindowsForms-搜索“窗口窗体”;参数“;在一个文本框中,c#,C#,我想从WindowsForms中的richtextbox读取一些用户输入 我希望用户以特定格式编写文本,例如: string text = "[3,true]#[5,false]#[9,false]"; // users input from the textfield 所以我想要的是一个字符串列表 List<Tuple<string, string>> tempList = new List<Tuple<string, string>>();

我想从WindowsForms中的richtextbox读取一些用户输入

我希望用户以特定格式编写文本,例如:

string text = "[3,true]#[5,false]#[9,false]"; // users input from the textfield
所以我想要的是一个字符串列表

List<Tuple<string, string>> tempList = new List<Tuple<string, string>>();

但是,这似乎不是我要找的正确的事情。

这是正则表达式的理想工作。 您可以使用此模式捕获所有变量,并使用编号和值的命名组
\[(?*?),(?*?)\]

它查找介于
[
]
之间的字符串。 这些字符由模式
(字符),(字符)
组成。 逗号前的字符被放入名为
number
的组中,逗号后的字符被命名为
value

然后,只需遍历所有匹配项并查看捕获的命名组的值

在代码中,它将如下所示:

void Main()
{
    var data = "[3,true]#[5,false]#[9,false]";
    var pattern = new Regex(@"\[(?<number>.*?),(?<value>.*?)\]");

    foreach (Match match in pattern.Matches(data))
    {       
        Console.WriteLine($"{match.Groups["number"]} = {match.Groups["value"]}" );
    }
}

这是一个很好的例子。

这是正则表达式的理想工作。 您可以使用此模式捕获所有变量,并使用编号和值的命名组
\[(?*?),(?*?)\]

它查找介于
[
]
之间的字符串。 这些字符由模式
(字符),(字符)
组成。 逗号前的字符被放入名为
number
的组中,逗号后的字符被命名为
value

然后,只需遍历所有匹配项并查看捕获的命名组的值

在代码中,它将如下所示:

void Main()
{
    var data = "[3,true]#[5,false]#[9,false]";
    var pattern = new Regex(@"\[(?<number>.*?),(?<value>.*?)\]");

    foreach (Match match in pattern.Matches(data))
    {       
        Console.WriteLine($"{match.Groups["number"]} = {match.Groups["value"]}" );
    }
}

这是一个很好的例子。

Wow这真是太棒了:你能给我解释一下这行代码吗
Console.WriteLine($“{match.Groups[“number”]}={match.Groups[“value”]}”)?因为我想把这两个值分成字符串变量。字符串numberText=。。。;和字符串boolText=。。。;该行相当于
Console.WriteLine(match.Groups[“number”]+“=”+match.Groups[“value”]),使用Visual Studio 2017中的新。如果你想把它们放在变量中,只要做
var number=match.Groups[“number”]
。哇,这真是太棒了:你能给我解释一下这行代码
Console.WriteLine($“{match.Groups[“number”]}={match.Groups[“value”]}”)?因为我想把这两个值分成字符串变量。字符串numberText=。。。;和字符串boolText=。。。;该行相当于
Console.WriteLine(match.Groups[“number”]+“=”+match.Groups[“value”]),使用Visual Studio 2017中的新。如果要将它们放入变量中,只需执行
var number=match.Groups[“number”]
void Main()
{
    var data = "[3,true]#[5,false]#[9,false]";
    var pattern = new Regex(@"\[(?<number>.*?),(?<value>.*?)\]");

    foreach (Match match in pattern.Matches(data))
    {       
        Console.WriteLine($"{match.Groups["number"]} = {match.Groups["value"]}" );
    }
}
3 = true
5 = false
9 = false