2

我想从 html 字符串中提取标题标签的内容。我已经进行了一些搜索,但到目前为止我无法在 VB/C# 或 PHP 中找到这样的代码。这也应该适用于大写和小写标签,例如应该适用于<title></title>和 < TITLE></TITLE>。谢谢你。

4

3 回答 3

7

您可以为此使用正则表达式,但它并非完全防错。如果你只是想要一些简单的东西(在 PHP 中),它会做:

function get_title($html) {
  return preg_match('!<title>(.*?)</title>!i', $html, $matches) ? $matches[1] : '';
}
于 2009-04-04T13:52:04.107 回答
3

听起来像是正则表达式的工作。这将取决于 HTML 的格式是否正确,即仅在 head 元素中找到 title 元素。

 Regex regex = new Regex( ".*<head>.*<title>(.*)</title>.*</head>.*",
                          RegexOptions.IgnoreCase );
 Match match = regex.Match( html );
 string title = match.Groups[0].Value;

我面前没有正则表达式备忘单,因此可能需要稍作调整。请注意,在不存在 title 元素的情况下也不会进行错误检查。

于 2009-04-04T13:51:20.553 回答
0

如果标题标签中有任何属性(这不太可能但可能发生),您需要按如下方式更新表达式:

$title = preg_match('!<title.*>(.*?)</title>!i', $url_content, $matches) ? $matches[1] : '';
于 2013-11-06T09:08:47.810 回答