2

Windows ストア アプリの Bing Local ページから og:title 属性を取得しようとしています。WinRT および C++/CX 用の HTML パーサーがないため、正規表現を使用してタグを取得し、次に XML パーサーを使用して関連する属性を抽出することにしました。

タグはこんな感じ。

<meta property="og:title" content="Some Location Name"/>

次の正規表現を使用して HTML からタグを引き出していますが、コンテンツ属性にスペースが含まれていると、一致するものを見つけることができません。

<meta property="og:title" content="[\s\S]*"/>

したがって、私の正規表現は McDonald's では機能しますが、Jack In The Box では機能しません。

タイトル全体を取得するにはどうすればよいですか?

4

3 に答える 3

3

これは、コンテンツに特定の問題があるほとんどのものに一致する私のオープングラフ正規表現クエリの1つですが、それらはまれであり、より読みやすい正規表現が必要です

<meta [^>]*property=[\"']og:title[\"'] [^>]*content=[\"']([^'^\"]+?)[\"'][^>]*>

しかし、コンテンツがプロパティの前に来る場合があるため、これも実行します

<meta [^>]*content=[\"']([^'^\"]+?)[\"'] [^>]*property=[\"']og:image[\"'][^>]*>
于 2015-06-11T10:17:45.773 に答える
0

免責事項: OpenGraph.io は、私が取り組んでサポートしている商用製品です。

残念ながら、あなたが思いついた正規表現はどれも当たり外れがあります。これを行う必要がある場合は、http: //www.opengraph.io/ で利用可能な API を使用できます。

その主な利点の 1 つは、OpenGraph タグが存在しない場合に、ページのコンテンツからタイトルや説明 (必要になった場合) などの情報を推測できることです。

サイトの使用に関する情報を取得するには: GET https://opengraph.io/api/1.0/site/<URL encoded site URL>

次のようなものが返されます。

{
   "hybridGraph": {
      "title": "Google",
      "description": "Search the world's information...",
      "image": "http://google.com/images/srpr/logo9w.png",
      "url": "http://google.com",
      "type": "site",
      "site_name": "Google"
   },
   "openGraph": {..}
   "htmlInferred": {..}
}
于 2014-04-30T20:30:26.383 に答える
0

正規表現にスペースを追加するだけです。[ \s\S]*

于 2013-07-18T00:16:37.933 に答える