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

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

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

Здравствуйте,битый день пытаюсь понять почему не работает выражение.Есть html файл, нужно вытащить текст из body.
Листинг программы
  1. pattern = "(<body>[^<>]+?).</body>*>";
Сам файл:
Листинг программы
  1. <html xmlns:user="http://mycompany.com/mynamespace" xmlns:MSHelp="http://msdn.microsoft.com/mshelp" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
  2. <head>
  3. <META http-equiv="Content-Type" content="text/html; charset=utf-8">
  4. <link href="http://yastatic.net/highlightjs/8.2/styles/solarized_light.min.css" rel="stylesheet"><script src="http://yastatic.net/highlightjs/8.2/highlight.min.js"></script><script type="text/javascript">hljs.initHighlightingOnLoad();</script><link rel="stylesheet" type="text/css" href="how_to.css">
  5. <body>
  6. <p>текст</p>
  7. <div class="......">
  8. Operating system: Windows XP (both 32-bit and 64-bit editions), Microsoft Windows Server 2003 (both 32-bit and 64-bit editions), Microsoft Windows 2000
  9. </div>
  10. <div class="aqWhatitdoes">
  11. The script below invokes the Open File dialog.
  12. </div>
  13. <div class="aqCode">
  14. <div class="aqCodeSegment">
  15. <p class="aqCodeHeader" style="background-image: url(.....gif);"><span class="aqLangID" name="aqLangID" id="aqLangID">VBScript</span><div id="ID0E2_divcodeseg">
  16. <pre><code class="vbs">Sub Test
  17. Dim i, openDialog, files
  18. 'Microsoft Common Dialog Control
  19. Set openDialog = CreateObject("MSComDlg.CommonDialog")
  20. With openDialog
  21. .DialogTitle = "Open my files..."
  22. .InitDir = "C:\WINDOWS\"
  23. .Filter = "All files (*.*)|*.*|Programs (*.com,*.exe)|*.com;"&amp;_
  24. "*.exe|Text (*.txt,*.log)|*.txt;*.log"
  25. .FilterIndex = 2
  26. .Flags = 2621952
  27. .MaxFileSize =32000
  28. .ShowOpen
  29. Filename = .Filename
  30. End With
  31. If (Len(openDialog.FileName)= 0) Then
  32. Log.Error("Files were not selected")
  33. Exit Sub
  34. End If
  35. files = Split(openDialog.Filename, vbNullChar)
  36. If 0 = UBound(files) Then
  37. Log.Message("The " &amp; files(0) &amp; " file was selected")
  38. Else
  39. For i = 1 To UBound(files)
  40. Log.Message("The " &amp; files(0) &amp; "\" &amp; files(i) &amp; " file was selected")
  41. Next
  42. End If
  43. End Sub</code></pre>
  44. </div>
  45. </p>
  46. </div>
  47. <div class="aqCodeSegment">
  48. <p class="aqCodeHeader" style="background-image: url(/images/support/kb/data/2009/11/30/codeHeader.gif);"><span class="aqLangID" name="aqLangID" id="aqLangID">JScript</span><div id="ID0E5_divcodeseg">
  49. <pre><code class="jsp">function Test()
  50. {
  51. // Microsoft Common Dialog
  52. var openDialog = new ActiveXObject("MSComDlg.CommonDialog");
  53. openDialog.DialogTitle = "Open my files...";
  54. openDialog.InitDir = "C:\\WINDOWS\\";
  55. openDialog.Filter = "All files (*.*)|*.*|Programs (*.com,*.exe)|" +
  56. "*.com;*.exe|Text (*.txt,*.log)|*.txt;*.log";
  57. openDialog.FilterIndex = 2;
  58. openDialog.Flags = 2621952;
  59. openDialog.MaxFileSize = 32000;
  60. openDialog.ShowOpen();
  61. if (0 == openDialog.FileName.length) {
  62. Log.Error("Files were not selected");
  63. return;
  64. }
  65. var files = openDialog.Filename.split("\0");
  66. if(1 == files.length) {
  67. Log.Message("The " + files[0] + " file was selected");
  68. }
  69. else {
  70. for(var i = 1; i &lt; files.length; i++) {
  71. Log.Message("The " + files[0] + "\\" + files[i] + " file was selected");
  72. }
  73. }
  74. }</code></pre>
  75. </div>
  76. </p>
  77. </div>
  78. </div>
  79. </body>
  80. </head>
  81. </html>
То есть соответственно такой же патер по

работает

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

textual
Листинг программы
  1. var webClient = new System.Net.WebClient();
  2. string URL = "http://site.ru";
  3. string HTML = webClient.DownloadString(URL);
  4. Match match = Regex.Match(HTML, "<body>(.*)</body>");
  5. string result=match.Success ? match.Groups[1].Value : "Не найдено";

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


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

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

6   голосов , оценка 4.167 из 5

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

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

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