Здравствуйте!
Подскажите, пожалуйста, как спарсить строку из html файла такого вида, с помощью regexp:
<div> <h2> <span style="font-size: 12px; padding: 5px;">Hello!</span></h2> "variable string" <br /><br /> </div>
Под "variable string" предполагается какой-то текст произвольный (имя если быть точным).
myHttpResponse = (HttpWebResponse)myHttpRequest.GetResponse();
using (var readers = new StreamReader(myHttpResponse.GetResponseStream()))
{
// сайт-строка
string html = readers.ReadToEnd();
Мой вариант реализации слишком "индусирован": сплитом разбиваю строку на массив строк без "лишних" символов, индентифицирую элемент содержащий "Hello!", по его номеру определяю номер следующего элемента (имя) и его уже вывожу. Есть ещё кончено html agility pack для парсинга html в c#, но интересует именно регулярное выражение, т.к. с его помощью можно не тянуть целую библиотеку для пары строчек кода.
Задачу решил с помощью регулярного выражения (в комментарии ниже), но вот пример моего "парсинга", он более наглядный для начинающих вроде меня.
// Строка для хранения результата
string storageForResponse = "";
// Читаем HTML-код сайта
string html = readers.ReadToEnd();
// Разбиваем строку на массив строк
string[] words = html.Split(new[] { ' ', ',', ':', '?', '\n', '\t', '\r' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < words.Length; i++)
{
if (words[i] == "Hello!")
{
if (i < words.Length - 1)
{
storageForResponse += words[i + 1];
}
break;
}
}
}