( (?> <td[^>]*> (?<o>) | </td> (?<-o>) | [\s\S] ) * ) (?(o)(?!))
?> 什么意思不太明白?
如果遇到 <td[^>]*> 则装入 (?<o>)
如果遇到 </td> 减去装入的一个 (?<-o>)
最后 (?(o) (?!)) 如果存在 o 匹配失败
原文在这里
http://www.cnblogs.com/symbol441/archive/2007/12/20/1006091.html