我有以下正则表达式:
var matches = Regex.Matches(s, @"ratingValue"" content=""(?<content>(?:(.|\n)(?!""></span>))+)");
但是,它为输出提供了“number。”,在.
之后没有任何内容。例如,如果数字为4.0
,则会输出4.
,如果是3.5
,则会提供3.
。
我怎样才能得到小数?
示例输入:
<span itemprop="ratingValue" content="4.0"></span>
我需要输出4.0
。
答案 0 :(得分:3)
您可以使用LINQ to XML:
string xml = @"<span itemprop=""ratingValue"" content=""4.0""></span>";
string content = XElement.Parse(xml).Attribute("content").Value;
decimal value = Convert.ToDecimal(content, CultureInfo.InvariantCulture);
答案 1 :(得分:0)
我已经更改了你的正则表达式,所以它返回十进制数作为匹配:
var matches = Regex.Matches(s, @"(?:ratingValue"" content="")(?<content>[\r\n\d\.]*)(?:""></span>)");
这是你追求的吗?它从提供的样本中返回4.0。