如何在表标记可用的情况下检查字符串值并实现regex



我有一个字符串变量,它组成了一个文本和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字符串,获取表块并从中删除新行。

或者您可以使用IHTMLDocumentIHTMLDocument2IHtmlDocument3。。。多达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;

感谢所有的意见和建议

最新更新