Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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#regex:从括号中获取数字_C#_Regex_Winforms - Fatal编程技术网

c#regex:从括号中获取数字

c#regex:从括号中获取数字,c#,regex,winforms,C#,Regex,Winforms,我写了正则表达式来分隔一些文本。我还希望能够从这个括号“[]”中获得值。这就是我到目前为止所做的: Regex(@"^(?:(?<C0>Message) from (?<C1>\S+) (?<C2>\S+) to (?<C3>\S+) (?<C4>\S+) (?<C5>.+))$"); 我想能够区分单词类型和数字3和45。现在我只需要同时输入[3]和[45]。我不知道这是否是您需要的:请告诉我 MatchCollecti

我写了正则表达式来分隔一些文本。我还希望能够从这个括号“[]”中获得值。这就是我到目前为止所做的:

Regex(@"^(?:(?<C0>Message) from (?<C1>\S+) (?<C2>\S+) to (?<C3>\S+) (?<C4>\S+) (?<C5>.+))$");

我想能够区分单词类型和数字3和45。现在我只需要同时输入[3]和[45]。

我不知道这是否是您需要的:请告诉我

 MatchCollection names = Regex.Matches("Message from device type[3] to receiver type[45] done;", @"Message from device type\[(3)\] to receiver type\[(45)\] done;");

  names[0].Groups[1].Value
  names[0].Groups[2].Value

我不知道这是否是你需要的:让我知道

 MatchCollection names = Regex.Matches("Message from device type[3] to receiver type[45] done;", @"Message from device type\[(3)\] to receiver type\[(45)\] done;");

  names[0].Groups[1].Value
  names[0].Groups[2].Value
如果在
类型[n]
中使用
Regex
仅获取
类型
n

Regex reg = new Regex(@"^(?:(?<C0>Message) from (?<C1>\S+) (?<T1>\S+)\[(?<N1>\d+)\] to (?<C3>\S+) (?<T2>\S+)\[(?<N2>\d+)\] (?<C5>.+))$");

var t1 = m.Groups["T1"].Value;//type
var n1 = m.Groups["N1"].Value;//3
var t2 = m.Groups["T2"].Value;//type
var n2 = m.Groups["N2"].Value;//45
Regex reg=newregex(@“^(?:(?消息)从(?\S+(?\S+)\[(?\d+)\]到(?\S+(\S+)\[(?\d+)\](?。+)$”;
var t1=m组[“t1”]值//类型
var n1=m组[“n1”]值//3.
var t2=m组[“t2”]值//类型
var n2=m.组[“n2”]值//45
如果在
类型[n]
中使用
Regex
仅获取
类型
n

Regex reg = new Regex(@"^(?:(?<C0>Message) from (?<C1>\S+) (?<T1>\S+)\[(?<N1>\d+)\] to (?<C3>\S+) (?<T2>\S+)\[(?<N2>\d+)\] (?<C5>.+))$");

var t1 = m.Groups["T1"].Value;//type
var n1 = m.Groups["N1"].Value;//3
var t2 = m.Groups["T2"].Value;//type
var n2 = m.Groups["N2"].Value;//45
Regex reg=newregex(@“^(?:(?消息)从(?\S+(?\S+)\[(?\d+)\]到(?\S+(\S+)\[(?\d+)\](?。+)$”;
var t1=m组[“t1”]值//类型
var n1=m组[“n1”]值//3.
var t2=m组[“t2”]值//类型
var n2=m.组[“n2”]值//45

如果此格式已修复,只需在正确的位置添加更多命名组即可

Regex(@"^(?:(?<C0>Message) from (?<C1>\S+) (?<C2>\S+)\[(?<C2n>\d+)\] to (?<C3>\S+) (?<C4>\S+)\[(?<C4n>\d+)\] (?<C5>.+))$");

如果此格式已修复,只需在正确的位置添加更多命名组

Regex(@"^(?:(?<C0>Message) from (?<C1>\S+) (?<C2>\S+)\[(?<C2n>\d+)\] to (?<C3>\S+) (?<C4>\S+)\[(?<C4n>\d+)\] (?<C5>.+))$");

您是否考虑过只使用IndexOf(“[”)来查找括号?regex是最简单的解决方案吗?我想继续使用regex,因为我还必须分隔文本的其余部分,所以我只需要添加有关括号的这部分。我现在不想更改所有内容。您考虑过只使用IndexOf(“[”)吗要找到括号?正则表达式是最简单的解决方案吗?我想继续使用正则表达式,因为我还必须分隔文本的其余部分,所以我只需要添加有关括号的这部分。我现在不想更改所有内容。它不起作用。我这样做(?[]\S+)。也许这是一种不好的方法?如果你指定你正在寻找的一组规则,会容易得多。(很难猜到你知道…)它不起作用。我是这样做的(?[]\s+)。也许这是一种不好的方法?如果你指定你正在寻找的一组规则,会容易得多。(很难猜到你知道…)伟大的@King King您的回答总是令人惊奇的。谢谢!我还有一个问题。我是这样做的:Regex(^(?(?命令)(?:回答|发送)从(?\S+)(?\d+))到(?\S+)(?\S+[(?\d+))(?。+)$),但我在C2中得到“type[3]”,在N1中我只得到“3”。我能做什么才能在C2中得到“type”“@user2592968你想得到整个
type[3]
还是只想得到
type
3
?我想得到type和3。伟大的@King King你的答案总是令人惊讶的。谢谢!我还有一个问题。我是这样做的,Regex(^(?:(?命令)(?:答案发送)从(?\S+)((?\S+[(?\d+)+)发送到(?\S+)(?\S+)(?\d+))$);但是我在C2中得到“type[3]”,在N1中我只得到“3”。我能做些什么才能在C2中只得到单词“type”?@user2592968你想得到整个
类型[3]
还是只得到
类型
3
?我想得到类型和3。
match.Groups["C2n"].Value