1

私は実際に、.NET 4.5 で HttpClient を使用して、Web ページ (私のものではない) に 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>

私がやりたいのは、.NET 4.5 ライブラリを使用して、head セクションの js スクリプトから HOST_DOMAIN、ID、および BASE_URL の値を何らかの方法で解析することですが、方法が見つかりません。何か案は?

4

2 に答える 2

0

グループ内の URL を取得する正規表現を使用します。

  string pattern = @"var HOST_DOMAIN = '([^']+)';";
  Match match = Regex.Matches(html, pattern)).FirstOrDefault();
  if (match != null)
      return match.Groups[1].Value;

Groups説明: 括弧は、一致のプロパティに格納される正規表現のグループを定義します。

考えられる問題: URL にエスケープされたアポストロフィが含まれている場合、機能しません。

于 2013-09-14T17:49:30.573 に答える
0

ホスト名用の正規表現について

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 で正規表現を使用する方法 jsで正規表現を使用する方法

于 2013-09-14T17:54:54.767 に答える