我需要从字符串中提取十进制数。目前我正在使用此正则表达式来查找十进制数,但它需要一个正确的十进制值。
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
怎么做?
答案 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