繁体   English   中英

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

[英]Get substring from string with a regex

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

一些文字与1条(10/100)某些其他文本......从-10℃50℃

一些其它文本2号(10/100)某些其他文本......从-11℃-2℃

一些其它文本-30号(1001分之100)某些其他文本...从2℃12℃

前两个数字在括号中,并用斜线分隔。 此外,斜杠后面没有空格,我不得不添加它以便能够使数字变为粗体。 这两个数字都是正整数。

第三个数字总是在“From”和第一个“°C”之间。

第四个数字始终位于“°C to”之后,最后一个“°C”。

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

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

这将有效:

^.*\( *(\d+) */ *(\d+) *\)\D*?From +(-?\d+)°C +to +(-?\d+)°C$

它只读取文本字符串中的4个数字(前两个始终为正数,后两个为正数或负数) - 它查找前两个数字的括号,并检查最后两个数字与“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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM