我要去除<td width="344" rowspan="24" class="AdColumn">...</td>之间的所有内容,包括<td ></td>标签,<td>...</td>之间没有包含表格。正则表达式怎么写。请高手支招!

解决方案 »

  1.   

    <(td|TD)(\s[^>]*)>(\s\S)*<\/(td|TD)\s*>
      

  2.   

    更正如下:
    <td(\s[^>]*)?>[\s\S]*<\/td\s*>
      

  3.   

    再次更正:<(td|TD)(\s[^>]*)?>[\s\S]*<\/(td|TD)\s*>
      

  4.   

    \<(td|TD)([^>])*\>[\s]*[a-zA-Z0-9]*\<\/(td|TD)\s*\>
      

  5.   

    或者可以将\<(td|TD)([^>])*\>[\s]*[a-zA-Z0-9]*\<\/(td|TD)\s*\>中的[a-zA-Z0-9]换为[\d\D]
      

  6.   

    我用了下好象都不对,
    重新说明下
    <td width="344" rowspan="24" class="AdColumn">...</td> 之间不再包含表格
    正则表达式语义:要清除包含 rowspan属性的td标签开头到下一个</td>之间的所有内容
      

  7.   

    \<td([^>]*)?AdColumn([^>]*)?\>[\s\S]*\<\/td\>
      

  8.   

    再次不完美更正:<(td|TD)([\s]*[^>]*)*>[\s\S]*<\/(td|TD)\s*>同志们,这里有个很致命的问题,好像是关于正则表达式的最长匹配原则。你使用这个去匹配整个网页的html代码,当然这个网页要有表格之类的比较常见的,你会发现他从第一个td开始匹配,一直到整个网页的最后一个td,其中还包括很多符合条件的<td>....</td>。显然是不合要求的吧,我没想出办法,请高手指教!!!
      

  9.   

    Regex.Replace(youstr,@"<td.*?>.*?</td>","");
      

  10.   

    netlg(雕龙) 兄,必须要先找到要匹配的带有 rowspan属性的td标签,这个标签在我的网页里面是唯一的。我已经用\<td([^>]*)?AdColumn([^>]*)?\>成功匹配。现在问题是如何找到下一个</td>标签。在这之前不能出现</td>标签。\<td([^>]*)?AdColumn([^>]*)?\>[\s\S]*\<\/td\> 里的 [\s\S]*只能是匹配到<td width="344" rowspan="24" class="AdColumn">之后的最后一个</td>标签
      

  11.   

    用非贪婪匹配,在后面加?\<td.*?\>.*?\<\/td\s*\>创建正则表达式对象的时候加参数忽略大小写或者将td改为[tT][dD]
      

  12.   

    \<td([^>]*)?AdColumn([^>]*)?\>[\s\S]*?\<\/td\> 匹配成功了,成功的删除了class是AdColumn的单元格! 多谢Ivony的指点!
      

  13.   

    Ivony() 40netlg(雕龙) 39   jedliu(21世纪什么最贵? 人才!)  20/////////该问题已经结帖
      

  14.   

    这么说8知道 你能8能鄙视我。
    你这个不是角本语言吗??
    保存成记事本。
    然后编写个C语言读文件的程序来做。应该不难。
    读原文件,写出一个新的。
    其中机理就是
    一边读,一边写,
    当读<tb>的时候只读,不写,
    当读到〈/tb>的时候继续又读又写。