Учитывая следующее содержание HTML (ограничено до абсолютного минимума я требую):Extract название от содержания HTML
Как я смог бы извлечь Page Title
с помощью Regex?
Учитывая следующее содержание HTML (ограничено до абсолютного минимума я требую):Extract название от содержания HTML
Как я смог бы извлечь Page Title
с помощью Regex?
Как прокомментировали другие, регулярные выражения могут не подходить для пуленепробиваемого метода. Например. используя regex, было бы трудно проверить, был ли тег <title>
частью кавычки в HTML. Это повторяющийся ответ на StackOverflow для таких вопросов. Но лично я думаю, что у вас есть точка зрения, что парсер будет излишним для такого простого извлечения. Если вы ищете метод, который работает больше всего того времени, одно из следующих действий должно быть выполнено.
Вариант 1: касательно предшествующий текст/опережение
(?<=<title[\s\n]*>[\s\n]*)(.(?![\s\n]*</title[\s\n]*>))*
Это использует lookbehind and lookahead для тегов - .NET имеет сложный механизм регулярных выражений, что позволяет для бесконечного повторения, так что вы можете даже проверить пробельный/возврат расположенных между имя тега и конечную скобку (см. this answer).
Вариант 2: Захват группа
<title[\s\n]*>[\s\n]*(.*)[\s\n]*</title[\s\n]*>
Аналогичной, но несколько проще - весь матч регулярного выражения включает в себя начальные и конечные тег. Первая (и только) группа захвата (.*)
захватывает бит, который представляет интерес между ними.
Визуализация:
Вы только захватывая заголовки или вы собираетесь быть разборе больше из документа? Если это так, используйте парсер HTML. –
Нет, просто название. – Daan
Вы можете посмотреть [это] (http://stackoverflow.com/a/1732454/148481) ответить –