C# 分析HTML时发现错误字符串

C# 分析HTML时发现错误字符串,c#,regex,xamarin,xamarin.forms,C#,Regex,Xamarin,Xamarin.forms,以下是我从playstore HTML内容获取版本号的正则表达式: var content = responseMsg.Content == null ? null : await responseMsg.Content.ReadAsStringAsync(); var versionMatch = Regex.Match( content, "<div[^>]*>Current V

以下是我从playstore HTML内容获取版本号的正则表达式:

var content = responseMsg.Content == null 
                  ? null 
                  : await responseMsg.Content.ReadAsStringAsync();

var versionMatch = Regex.Match(
    content, 
    "<div[^>]*>Current Version</div><span[^>]*><div><span[^>]*>(.*?)<").Groups[1];

if (versionMatch.Success)
{
    version = versionMatch.Value.Trim();
}
var content=responseMsg.content==null
? 无效的
:wait responseMsg.Content.ReadAsStringAsync();
var versionMatch=Regex.Match(
内容,,

“]*>当前版本]*>]*>(.*?要跳过
当前版本
和版本号所在的
之间的中间文本,您可以使用一个(非贪婪的)
*?
。如果给出了
RegexOptions.Singleline
,则点也将匹配
\r\n
。要获得正确的范围,请将其内容指定为”“数字和点”(
[\d\.]+
)而不是“任何东西”(
*?

var content=@”
当前版本
1.9
";
var versionMatch=Regex.Match(
内容,,

@“]*>当前版本。*?]*>([\d\.]+)要跳过
当前版本
之间的中间文本(版本号所在位置),可以使用(非贪婪)
*?
。如果给定了
RegexOptions,则点也将匹配
\r\n
。单线
。要获得正确的跨度,请将其内容指定为“数字和点”(
[\d\.]+
),而不是“任何东西”(
*?

var content=@”
当前版本
1.9
";
var versionMatch=Regex.Match(
内容,,
@“]*>当前版本。*?]*>([\d\.]+)您可以尝试与一起使用,这样您基本上可以执行以下操作:

var web = new HtmlWeb();
var html = web.Load(uri);
var documentNode = html.DocumentNode;
var version = documentNode.QuerySelector(".htlgb").InnerHtml;
您不必担心regex,您可以尝试与一起使用,这样您基本上可以执行以下操作:

var web = new HtmlWeb();
var html = web.Load(uri);
var documentNode = html.DocumentNode;
var version = documentNode.QuerySelector(".htlgb").InnerHtml;

您不必担心regex

仅仅因为该字符串显示在web浏览器开发人员工具DOM视图中,并不意味着在来自服务器的实际HTML源代码中也是这样。顺便问一下:
当前版本
和版本号所在的
之间的文本如何?您的regex does与此不匹配。请尝试删除\r\n在分析它之前,您有“div>@UweKeim”。我没有向标题添加标记。我更正了一个拼写错误并添加了“regex”-标记到标记列表。你认为我为什么这么做?-啊哈。回顾历史可以清楚地看出:似乎我编辑了标题。我是无意中编辑的。我认为这是因为一次并发编辑,因为事实上我没有更改它…我很抱歉,仅仅因为字符串显示在web浏览器开发人员工具DOM视图中,并不意味着它也是您的实际HTML源代码来自服务器。顺便说一句:
当前版本
和版本号所在的
之间的文本如何?您的正则表达式与此不匹配。请尝试在解析它之前删除\r\n,您有“div>@UweKeim”。我没有在标题中添加标记。我更正了一个键入错误并添加了“regex”“-标记到标记列表中。你认为我为什么这么做?-啊。回顾历史可以清楚地看出:似乎我编辑了标题。我是无意中编辑的。我想这是因为一次并发编辑,因为我实际上没有更改它…很抱歉,它引发了空引用异常。它引发了空引用异常。
var web = new HtmlWeb();
var html = web.Load(uri);
var documentNode = html.DocumentNode;
var version = documentNode.QuerySelector(".htlgb").InnerHtml;