C # Получить строку между 2 HTML-тегами

1

Я знаю, что это было опубликовано раньше, но я не мог заставить его работать.

У меня есть эта строка: <div class="s20 red">120.000.000 kr.</div>

Но я хочу только 120.000.000 kr.

Как я могу выделить строку?

  • 1
    Если ваш html более полный, чем этот, то используйте настоящий html-анализатор, такой как HtmlAgilityPack
Теги:

3 ответа

5
Лучший ответ

Использовать Regex:

 var a = @"<div class=""s20 red"">120.000.000 kr.</div>";
 var b = Regex.Match(a, "(?<=>)(.*)(?=<)");
 Console.WriteLine(b.Value);

Выход: 120.000.000 крон.

  • 1
    Регулярные выражения отлично подходят для такого сопоставления с образцом.
  • 0
    Я просто подумал о чем-то: что если в моей строке будет несколько тегов HTML? Как я могу получить только 120.000.000 крон?
0

Вы можете использовать метод IndexOf чтобы найти, где заканчиваются и запускаются теги, и метод SubString для получения текста между ними. Пример:

string price = "<div class=\"s20 red\">120.000.000 kr.</div>";

int start = price.IndexOf('>');
int end = price.IndexOf('<', start);
price = price.Substring(start + 1, end - start - 1);
0

Более простая альтернатива, чем все текстовые решения, если ваш html является допустимым xml (минус-заголовок), что в вашем фрагменте является использование LINQ xml api

XElement.Parse(yourstring);
XElement.Value // this contains exactly what you asked for.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню