<table style="width: 100%; border-bottom: #ff8c00 1px solid;">
        <tr>
            <td class="xyz">
                <a href="http://www.sosolib.com" style="text-decoration: none;"><span class="SiteName">
                    iLib2
                </span></a><span class="SiteDescription">
                    新一代的学术数据库
                </span>
            </td>
            <td class="xyz">dsfds<a href>sfsafs</a>
<span dfdf>sdfsdf</span>
                <div id="xxx">
                &nbsp;</div></td>
            <td style="text-align: right; vertical-align: top;">我用<td[^>]*>(?!div|td).*?<div,老是匹配到最前面的那个TD,而不是后面这个,请帮我看一下,谢谢。
(尽可能的通用固定标签哈,而不是以可变的那些参数来区别,因为实际的比这个例子要复杂很多)

解决方案 »

  1.   

    你想得到最后一对<td></td>里的内容?
      

  2.   

    最后一个TD与<div id="xxx">……</div>之间的内容,不包含TD。也就是下面的内容。
    dsfds <a href>sfsafs </a> 
    <span dfdf>sdfsdf </span> 
                    <div id="xxx"> 
                    &nbsp; </div>
      

  3.   

    你给的例子不全(?is)<td[^>]*>(?:(?!</?td\b).)*</td>(?=(?:(?!</?t(?:able|d)\b).)*</table>)
      

  4.   

    LXCNN,你总是出现得那么的及时啊,中间要包含那个DIV,
      

  5.   

    是不是可以借助正向与搜索,把最后一个</td>右边的内容写出来,匹配一下。
    只是思路,大约如下:
    <td[^>]*>.*?(?=</div> </td>)还有一个么就是成对匹配所有的TD,在一个Collection里面取最后一个么好了
      

  6.   

    <td[^>]*>.*?(?=<div
    正向搜索也会匹配到最前面的那个TD,不是后面这个TD。
      

  7.   

    前台要用还是后台?
    前台可以用jQuery
      

  8.   

    这种需求要说清楚啊(?is)<td[^>]*>(?:(?!</?(?:td|div)\b).)*<div[^>]*>(?:(?!</?div\b).)*</div>
      

  9.   

    Regex reg = new Regex(@"(?i)[\d\D]*<td[^>]*>(?<get>[\d\D]*)</td>(?![\d\D]*<td[\d\D]*)");
    照着过客老大的博客写出来的
      

  10.   

    正向怎么会匹配最前面那个啊?最前那个的结尾没有<div的啊,正向预搜索的时候就不符合要求了,怎么还会匹配?或者贴的代码不全?
      

  11.   

    哦,我看出来了,呵呵,疏忽大意了,还得在预搜索里面放个不包含。
    (<td[^>]*>)((?!\1).*?)(?= </div> </td>) 大致意思就是<td[^>]*> 打头, 匹配但不包含右边的</div> </td>,并且,所匹配的内容中间不能包含<td[^>]*>,这样不知道行不行啊。我没测试,嘿嘿,楼主自己辛苦一下吧