C# WindowsForms-搜索“窗口窗体”;参数“;在一个文本框中
我想从WindowsForms中的richtextbox读取一些用户输入 我希望用户以特定格式编写文本,例如: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>>();
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