我有一个字符串变量,它组成了一个文本和html标记。如何仅在html表标记中执行regex?这可能吗?
string input = "Hello,nTRAVEL DETAILSn<table border="1">n<tr>n<th align="center">Initial Travel Date</th>n<th align="center">Reference Number</th>n<th align="center">First Name</th>n<th align="center">Surname</th>n<th align="center">Main Reason</th>n<th align="center">Client ID</th>n</tr>n<tr>n<td align="center">{TRV TRL INIT.trn}</td>n<td align="center">{TRV REF NO.trn}</td>n<td align="center">{TRV FIRST NM.trn}</td>n<td align="center">{TRV SURNAME.trn}</td>n<td align="center">Internal Meeting</td>n<td align="center">{TRV CLIEN ID.trn}</td>n</tr>n</table>"
string output = Regex.Replace(input, @"t|n|r", "");
return output;
我只需要删除表元素中的"\n">
您可以使用WebBrowser
控件解析HTML字符串,获取表块并从中删除新行。
或者您可以使用IHTMLDocument
、IHTMLDocument2
、IHtmlDocument3
。。。多达8个以解析HTML。不过,您需要在项目引用中包含Mshtml.dll。
或者使用第三方HTML解析器。
除非您想编写自己的HTML解析器,否则不要尝试操作原始字符串。
我找到了一种方法来消除表中的"\n"。但后来却没有使用正则表达式。这是的最新代码
string input = emailMessage.Message.Replace("n<tr>n", "<tr>").Replace("</th>n", "</th>").Replace("n</tr>", "</tr>")
.Replace("</td>n", "</td>").Replace("n</table>", "</table>");
string output = input;
return output;
感谢所有的意见和建议