我有一个HTML文件,我需要重新介绍一些内容。
需要替换的文件的结构是:
<td>xxxx!!</td>
并替换为:
<td align="center">xxxx!!</td>
td之间的文字如下:
xxxx is an letter, number, period or space
!! are two exclamation points
如何在C#.net中替换这些?
答案 0 :(得分:0)
您不应该尝试使用正则表达式解析HTML,而是使用HTML Parser。 对于C#,您可以使用http://htmlagilitypack.codeplex.com/
答案 1 :(得分:0)
首先,您需要添加Html Agility Pack:
Install-Package HtmlAgilityPack
你没有提供任何例子,因为我建立了我的。
using HtmlAgilityPack;//use this namespace
static void Main(string[] args)
{
string html = @"<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
<table>
<tr>
<td>A!!</td>
<td>te2</td>
<td>2!!</td>
<td>te43</td>
<td></td>
<td> !!</td>
<td>.!!</td>
<td>te53</td>
<td>te2</td>
<td>texx</td>
</tr>
</table>
</body>
</html>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
List<HtmlNode> tdNodes = doc.DocumentNode.Descendants().Where(x => x.Name == "td").ToList();
foreach(HtmlNode node in tdNodes)
{
if (!node.InnerText.Contains("!!"))
continue;
node.Attributes.Add("align", "center");
}
string html2 = doc.DocumentNode.InnerHtml;
}
如果有可能有另一个td !!在它们中为你的案例构建正则表达式,它应该查找。,数字,空格,字母,并且仅在这种情况下添加属性。