如下内容: 该表格里面可能还嵌套了表格等各种元素
htmlstr= "上略一千字<table 一些样式代码 id='xlstable' 另一些样式代码>......</table>下略500字"现在要用c#正则,将这段内容"<table 一些样式代码 id='xlstable' 另一些样式代码>......</table>"替换成我定义好的内容如 str2 ="<table><tr><td>广告</td></tr></table>",期待函数 public string replaceOldTableByNewTable( string htmlstr, string str2)
返回htmlstr被替换后的结果.还要再麻烦各位大侠,在线等。
htmlstr= "上略一千字<table 一些样式代码 id='xlstable' 另一些样式代码>......</table>下略500字"现在要用c#正则,将这段内容"<table 一些样式代码 id='xlstable' 另一些样式代码>......</table>"替换成我定义好的内容如 str2 ="<table><tr><td>广告</td></tr></table>",期待函数 public string replaceOldTableByNewTable( string htmlstr, string str2)
返回htmlstr被替换后的结果.还要再麻烦各位大侠,在线等。
lZ是想去掉冗余数据和表格样式吗,如果是的话可以用这个
string htmlstr= "上略一千字 <table 一些样式代码 id='xlstable' 另一些样式代码>...... </table>下略500字";
htmlstr.replace(@"([^<>]+)|((\s*[^=]+='[^']+'\s*)*)",'"")
public string replaceOldTableByNewTable(string htmlstr, string str2)
{
Regex reg = new Regex(@"(?is)<table\b(?:(?!id=).)*id=(['""]?)xlstable\1[^>]*>((?><table[^>]*>(?<o>)|</table>(?<-o>)|(?:(?!</?table\b).)*)*(?(o)(?!)))</table>");
return reg.Replace(htmlstr, str2);
}
//调用
string htmlstr = "上略一千字 <table 一些样式代码 id='xlstable' 另一些样式代码>...... </table>下略500字";
string str2 = " <table> <tr> <td>广告 </td> </tr> </table>";
richTextBox2.Text = replaceOldTableByNewTable(htmlstr, str2);
//输出
上略一千字 <table> <tr> <td>广告 </td> </tr> </table>下略500字
客客写的很严谨
<table\b(?:(?!id=).)*id='xlstable'[^>]*>[^<]*</table>
然后replace一下就可以了
string str2= "<table><tr><td>我的新表格</td></tr></table>"期待结果:
"一些html代码<table><tr><td>我的新表格</td></tr></table>另一些html代码"就是想用我的表格str2替换掉原先的<table id='xlstable'>...</table>这个表格
public string replaceOldTableByNewTable(string htmlstr, string str2)
{
string value = "";
Regex reg = new Regex(@"<table[\s|\S]*?(?:id='xlstable')[^>]*>[\s|\S]*?(?:</table>)");
value= reg.Replace(htmlstr, str2);
return value;
}