日期:2014-05-19  浏览次数:21196 次

一个关于正则表达式的问题
我要用正则表达式   把 <td   height= "100 "   colspan= "2 "   width= "100 "> &nbsp; </td>   或者 <td   height= "100 "   rowspan= "2 "   width= "100 "> &nbsp; </td>   替换为 <td   colspan= "2 "> </td> 或则 <td   rowspan= "2 "> </td> 怎么替换。      请大家帮帮忙 我以前用的temp1   =   Regex.Replace(temp1,   @ "\ <td(\s.*?)*(rowspan|colspan)=(.*?)\> ",   " <td   $2=$3> ");  在VB中能用,但是在C#中遇到这句就死程序~   有人能帮忙吗??     请各位大人帮帮忙

------解决方案--------------------
唉,这几天头脑发晕,居然写出这样一个变态的正则来,先凑合着用吧,符合你的要求,效率上也不会有什么损失,就是看着别扭,等哪天头脑清醒了再看看吧

string yourStr = ...............;
string resultStr = Regex.Replace(yourStr, @ " <td(?:[^> ]*?)(? <span> \s(?:colspan|rowspan)=([ ' " "]?)[^ ' " "\s> ]*\1?)?(?![^> ]*(?:colspan|rowspan))(?:[^> ]*)> ", " <td${span}> ", RegexOptions.IgnoreCase);