如何获得正则表达式

时间:2014-01-16 03:09:16

标签: c#-4.0 expression

我想删除文本中的google ad html,例如

xxxxxxx<div class="gg200x300" style="padding: 19px; margin: 0px 22px 0px 0px; overflow: hidden; text-align: center; font-size: 0px; line-height: 0; float: left; border: 1px solid rgb(229, 229, 229); color: rgb(37, 37, 37); font-family: 宋体, sans-serif;"><iframe src="http://g.163.com/r?site=netease&amp;affiliate=news&amp;cat=article&amp;type=logo300x250&amp;location=13" width="300" height="250" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>yyyyyy

我想删除xxxxxxx和yyyyyy之间的html,然后返回

xxxxxxxyyyyyy 

如何使用c#设置正则表达式,请你说明为什么要使用正则表达式? 感谢。

2 个答案:

答案 0 :(得分:0)

如果它总是在div,你可以这样做。

if (a.IndexOf("<div") > 0)
{
   Console.WriteLine(a.Remove(a.IndexOf("<div"),a.IndexOf("</div>")-1)); 
   //output xxxxxxxyyyyyy
}

这不是完整的答案,但至少让你前进。 我对Regex不太满意,但我的预感是,为这个字符串开发Regex很难。 希望这会有所帮助。

修改

让生活更轻松地将div包裹在另一个div中。喜欢

<div id="googleadd">.......</div>

然后根据它进行搜索。

 if (a.IndexOf("<div id='googleadd'>") > 0)
 {
  :
  :
 }

比您确切知道要删除的内容。

答案 1 :(得分:0)

如果它始终是同一个类,那么使用@gmail用户的方法会很容易,但改为:

if (a.IndexOf("<div") > 0)
{
    if (a.Substring(a.IndexOf("<div")).Contains("class=\"gg200x300\""))
    {
        Console.WriteLine(a.Remove(a.IndexOf("<div"),a.IndexOf("</div>")-1)); 
        //output xxxxxxxyyyyyy
    }
}

我不会使用正则表达式,因为它对于你真正寻找的东西来说会过于复杂,除非非常具体,否则可能会产生误报。它很简单,可以查找某个类的div并删除它。