2

我正在尝试从 Windows Store 应用程序的 Bing 本地页面中提取 og:title 属性。没有用于 WinRT 和 C++/CX 的 HTML 解析器,因此我使用了正则表达式来获取标记,然后使用 XML 解析器来提取相关属性。

这就是标签的样子。

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

我正在使用以下正则表达式从 HTML 中提取标签,但只要内容属性中有空格,它就会找不到匹配项。

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

所以,我的正则表达式适用于麦当劳,但不适用于 Jack In The Box。

我需要做什么才能获得整个标题?

4

3 回答 3

3

这是我的开放图形正则表达式查询之一,它与内容中的特定问题匹配大多数事物,但这些很少见,我宁愿有一个更具可读性的正则表达式

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

但是我确实遇到过内容在属性之前出现的情况,所以我也运行它

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

免责声明:OpenGraph.io 是我从事和支持的商业产品。

不幸的是,你想出的任何正则表达式都会被击中或错过。如果您最终需要这样做,您可以使用http://www.opengraph.io/上提供的 API

它的主要好处之一是,如果 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 回答