C#提取带有句点的十进制数

时间:2016-11-04 11:32:51

标签: c# regex

我需要从字符串中提取十进制数。目前我正在使用此正则表达式来查找十进制数,但它需要一个正确的十进制值。

 var value = Regex.Match(formula, @"(?n)\d+(\.(?<decimal>\d+))?");
            return value.Groups["decimal"].Success ? int.Parse(value.Groups["decimal"].Value) : 0;

如果我写2.1它会给我1但是在写.1时它不会评估该字符串。

我需要用一个正则表达式从这些字符串中提取一个十进制数

2.1 = 1
.5 = 5
SMA(21).6 = 6

怎么做?

1 个答案:

答案 0 :(得分:1)

似乎您只想在点后提取1位或更多位数。您可以使用与文字点匹配的简单\.(\d+)正则表达式,然后匹配并将 1个或多个数字捕获到第1组。

使用

var m = Regex.Match(formula, @"\.(\d+)");
var res = string.Empty;
if (m.Success)
{ 
    res = m.Groups[1].Value;
}

请参阅regex demo

enter image description here