如何从一个单词删除多个行文本到另一个单词

时间:2012-11-13 18:53:08

标签: c# regex web-scraping

我正在将网页上的数据写入文本文件,因为我想删除一些不相关的内容,例如

    </h3>
    <div class="form clearfix">
      <a href="/matches/2012/11/11/mexico/primera-division/club-san-luis/deportivo-toluca-futbol-club/1292713/" class="form-icon form-loss " title="San Luis - Toluca 0 - 2">L</a>
      <a href="/matches/2012/11/04/mexico/primera-division/club-tijuana-xoloitzcuintles-de-caliente/club-san-luis/1292699/" class="form-icon form-draw " title="Tijuana - San Luis 0 - 0">D</a>
      <a href="/matches/2012/10/28/mexico/primera-division/club-san-luis/queretaro-fc/1292695/" class="form-icon form-draw " title="San Luis - Querétaro 0 - 0">D</a>
      <a href="/matches/2012/10/21/mexico/primera-division/club-atlas-de-guadalajara/club-san-luis/1292684/" class="form-icon form-win " title="Atlas - San Luis 2 - 3">W</a>
      <a href="/matches/2012/10/14/mexico/primera-division/club-san-luis/club-atlante/1292674/" class="form-icon form-draw last" title="San Luis - Atlante 2 - 2">D</a>
    </div>
  </div>

  <div class="container middle">
    <h3 class="thick scoretime ">   

我正在尝试将输出</h3><h3 class="thick scoretime ">删除其他数据。

我试过

source = regax.replace(source, </h3>.*<h3 class="thick scoretime "> ","</h3><h3 class="thick scoretime "> ")

但它不起作用。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

使用HTML Agilty Pack - 它是.NET的开源 HTML解析器

什么是Html Agility Pack(HAP)?

  

这是一个敏捷的HTML解析器,它构建一个读/写DOM并支持普通的XPATH或XSLT(你实际上不需要理解XPATH或XSLT来使用它,不用担心......)。它是一个.NET代码库,允许您解析“out of the web”HTML文件。解析器非常容忍“真实世界”格式错误的HTML。对象模型与提出System.Xml非常相似,但对于HTML文档(或流)。

您可以使用它来查询HTML并提取您想要的任何数据。


如果最终需要根据您的要求提取基于正则表达式模式的文本,您可以这样做:

Regex regex = new Regex("</h3>(?<Junk>.*)<h3 class=\"thick scoretime \">",
    RegexOptions.None | RegexOptions.Singleline);
var extractedString = regex.Replace(htmlString, "${Junk}");

答案 1 :(得分:0)

以下内容将搜索所有内容

 string file = "TheEntireFileIsInThisBuffer";
 string pattern = "<div.*</div>"; 
 RegEx rgx = new RegEx(pattern);
 string fileWithOutDivs = rgx.Replace(file, System.String.Empty);