Неверное регулярное выражение при парсинге страницы - C#

Узнай цену своей работы

Формулировка задачи:

Имеется страница такой разметки:
Листинг программы
  1. <tr class="lutr">
  2. 15
  3. 26
  4. 37
  5. 48
  6. </tr>
  7. <tr class="lutr">
  8. 1
  9. 2
  10. 3
  11. 4
  12. 5
  13. 6
  14. 7
  15. </tr>
  16. <tr class="lutr">
  17. 10000
  18. </tr>
Пытаюсь вытащить текст из тегов

<tr class="lutr"></tr>

с помощью регулярного выражения:
Листинг программы
  1. Regex _Reg = new Regex(@"(\<tr\sclass\=\x22lutr\x22\>)(.*)(\<\/tr\>)", RegexOptions.Multiline);
  2. foreach (Match match in _Reg.Matches(richTextBox2.Text))
  3. {
  4. richTextBox2.Text += match.Groups[2].Value + "\n";
  5. }
Однако вытаскивать он не так как нужно, в результате он вытаскивает все, что было между 1 и последним тегом и получается так:
Листинг программы
  1. 15
  2. 26
  3. 37
  4. 48
  5. </tr>
  6. <tr class="lutr">
  7. 1
  8. 2
  9. 3
  10. 4
  11. 5
  12. 6
  13. 7
  14. </tr>
  15. <tr class="lutr">
  16. 10000
Как можно исправить регулярку?

Решение задачи: «Неверное регулярное выражение при парсинге страницы»

textual
Листинг программы
  1. string input = @"<tr class=""lutr""
  2. 15
  3. 26
  4. 37
  5. 48
  6. </tr>
  7. <tr class=""lutr"">
  8. 1
  9. 2
  10. 3
  11. 4
  12. 5
  13. 6
  14. 7
  15. </tr>
  16. <tr class=""lutr"">
  17. 10000
  18. </tr>";
  19.  
  20.  
  21.             foreach (Match all in Regex.Matches(input, @"<tr class=""lutr""(.*?)</tr>", RegexOptions.Singleline))
  22.             {
  23.                 Console.WriteLine(Regex.Replace(all.Value, @"(<tr class=""lutr"")|(</tr>)|>", "", RegexOptions.Singleline).Trim());
  24.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы