Я хочу извлечь содержимое тега title из строки html. Я сделал поиск, но до сих пор я не могу найти такой код в VB/C# или PHP. Также это должно работать как с верхним, так и с нижним регистром, например. должен работать как с <title></title>
, так и с < TITLE></TITLE>
. Спасибо.extract title tag from html
ответ
Звучит как работа для регулярного выражения. Это будет зависеть от корректности HTML-кода, т. Е. Только элемент заголовка внутри элемента head.
Regex regex = new Regex(".*<head>.*<title>(.*)</title>.*</head>.*",
RegexOptions.IgnoreCase);
Match match = regex.Match(html);
string title = match.Groups[0].Value;
У меня нет моей регулярки шпаргалки передо мной, так что, возможно, потребуется немного настройки. Обратите внимание, что в случае, если элемент заголовка не существует, проверка ошибок также отсутствует.
«Звучит как работа для ... Более-регулярного выражения!» Разработчик днем, супергерой ночью;) – Piskvor
RE: «Хорошо сформированный» - вам не нужно помещать элемент '
Даже хуже, чем сойканг правильно указывает, существует много полезных HTML-файлов с недопустимым заголовком. например
Вы можете использовать регулярные выражения для этого, но это не является полностью защищенным от ошибок. Это будет делать, если вы просто хотите что-то простое, хотя (в PHP):
function get_title($html) {
return preg_match('!<title>(.*?)</title>!i', $html, $matches) ? $matches[1] : '';
}
Похоже, что эта функция чувствительна к регистру, эта функция не извлекает заголовок, если она в верхнем регистре, можете ли вы изменить эту функцию, чтобы игнорировать случай? – 2009-04-05 17:35:41
Флаг «i» после шаблона делает регистр нечувствительным к регистру. – cletus
Если есть атрибут в тег заголовка (что маловероятно, но может случиться), вам необходимо обновить выражение следующим образом:
$title = preg_match('!<title.*>(.*?)</title>!i', $url_content, $matches) ? $matches[1] : '';
- 1. Extract hash tag from String
- 2. title tag html edit
- 3. jquery, extract number value from name tag
- 4. Jsoup - extract html from element
- 5. anchor tag HREF extract
- 6. jQuery scrolling marquee in html title title tag
- 7. Render html tag from string
- 8. Wordpress title-tag
- 9. javascript change anchor tag title value from PHP Echo
- 10. ID3 tag extract
- 11. Wordpress title-tag function
- 12. ImageButton title tag
- 13. extract xml from xml embebed in html
- 14. Sed extract link from html page
- 15. extract AJAX from file
- 16. Joomla 2.5 change html title from view.html.php
- 17. extract title xpath, если присутствует код xpath
- 18. img tag в атрибуте title
- 19. extract string from url
- 20. extract uuid from url
- 21. extract filename from path
- 22. extract image from image
- 23. extract subset from data.frame
- 24. extract month from mysql
- 25. Удалить Title from DatePickerDialog
- 26. Ipad show title-Tag изображения
- 27. Jsoup clean title tag failure
- 28. Extract Title + ссылки с домашней страницы
- 29. атрибут «title» для <html: options> struts tag
- 30. Id from anchor tag
HTML не является, в общем, хорошо сформированным. Поэтому любое решение будет иметь ошибки. Какие случаи ошибок приемлемы для вас? –
Я думаю, что он должен игнорировать случай и отсутствовать тег заголовка из документа. Возможно, наилучшим образом это должна быть функция, возвращающая значение заголовка строки или пустую строку, если отсутствует метка ошибки или заголовка. – 2009-04-05 17:26:07