C# 使用正则表达式从字符串中获取子字符串

C# 使用正则表达式从字符串中获取子字符串,c#,.net,regex,C#,.net,Regex,如何从以下格式的字符串中获取我的四个数字: 一些文本带有1个数字(10/100)一些其他文本。。。从-10摄氏度到50摄氏度 其他一些带有2个数字的文本(10/100)其他一些文本。。。从-11摄氏度到-2摄氏度 其他一些带有-30个数字的文本(100/1001)其他一些文本。。。从2摄氏度到12摄氏度 前两个数字在括号中,用斜线分隔。另外,斜杠后面没有空格,我必须加上它才能使数字加粗。这两个数字都是正整数 第三个数字总是介于“From”和第一个“C”之间 第四个数字总是在“C到”和最后一个“C

如何从以下格式的字符串中获取我的四个数字:

一些文本带有1个数字(10/100)一些其他文本。。。从-10摄氏度到50摄氏度

其他一些带有2个数字的文本(10/100)其他一些文本。。。从-11摄氏度到-2摄氏度

其他一些带有-30个数字的文本(100/1001)其他一些文本。。。从2摄氏度到12摄氏度

前两个数字在括号中,用斜线分隔。另外,斜杠后面没有空格,我必须加上它才能使数字加粗。这两个数字都是正整数

第三个数字总是介于“From”和第一个“C”之间

第四个数字总是在“C到”和最后一个“C”后面

字符串中没有其他括号,其中只有一个“From”字

我正在使用C#和.NET 3.5。

这将起作用:

^.*\( *(\d+) */ *(\d+) *\)\D*?From +(-?\d+)°C +to +(-?\d+)°C$
它只读取文本字符串中的4个数字(前两个总是正数,后两个是正数或负数)——它查找前两个数字的括号,并检查最后两个数字在“From”和“to”之间的位置


前两个数字是正数,后两个数字可以是负数或正数。我可以使用你的解决方案,因为字符串中只有这四个数字:)好吧,酷,我可以对括号等更严格。我的错,我也可以在第一个括号之前有数字,所以这不是正确的解决方案。。。编辑了第一篇文章。好的,我现在已经编辑了这篇文章(全部),它与你的例子一起工作。我再次修改了它。它以前工作得很好,但是我已经做了一些修改,在“From”、“to”等后面可以有多个空格。
var pattern = @"^.*\( *(\d+) */ *(\d+) *\)\D*?From +(-?\d+)°C +to +(-?\d+)°C$";

var result = Regex.Match("Some other text with 2 numbers (10/ 100) some other text... From -11°C to -2°C", pattern);

var num1 = int.Parse(result.Groups[1].Value);
var num2 = int.Parse(result.Groups[2].Value);
var num3 = int.Parse(result.Groups[3].Value);
var num4 = int.Parse(result.Groups[4].Value);