C# 在C中从HTML响应解析javascript值

C# 在C中从HTML响应解析javascript值,c#,javascript,html,parsing,variables,C#,Javascript,Html,Parsing,Variables,我实际上正在构建一个应用程序,通过使用.NET 4.5中的HttpClient,我向一个非我的网页发送GET请求,并在内容中收到此响应: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http

我实际上正在构建一个应用程序,通过使用.NET 4.5中的HttpClient,我向一个非我的网页发送GET请求,并在内容中收到此响应:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:widget="http://www.netvibes.com/ns/">
<head>  
<meta http-equiv="content-type" 
      content="text/html;charset=utf-8" />
<script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script><title>Site</title>

<script type="text/javascript">
var HOST_DOMAIN = 'http://www.site.com/';
var ID = '2261443944';
var BASE_URL = 'https://base.site.com';
</script>

  </head>
    <body >
    </body>
</html>

我想做的是使用.NET4.5库以某种方式解析head部分js脚本中的HOST_DOMAIN、ID和BASE_URL的值,但我找不到如何解析。有什么想法吗?

使用正则表达式捕获组中的url

  string pattern = @"var HOST_DOMAIN = '([^']+)';";
  Match match = Regex.Matches(html, pattern)).FirstOrDefault();
  if (match != null)
      return match.Groups[1].Value;
说明:括号在正则表达式中定义了一个组,该组存储在匹配的Groups属性中


可能的问题:如果url包含转义撇号,则不起作用。

适用于主机名使用的正则表达式

var ValidHostnameRegex = "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$";
参考链接:

然后用一个数字

以及如何在javascript中使用reg-ex

您可以简单地使用一个正则表达式,如var HOST_DOMAIN='[^']+'@Yogu通过使用正则表达式,我只能看到上面的字符串是否包含在我的回复中,而不能将其值存储在变量中。不过,我对正则表达式不是很有经验,所以如果您能扩展您的答案,我将不胜感激。