Regex需要删除和替换两个条件中指定的html标记';s使用C#
本文关键字:html 标记 使用 条件 删除 替换 两个 Regex | 更新日期: 2023-09-27 18:25:22
1)用相应的html标记只替换几个html标记。
示例:将h1标记替换为h4标记,将div标记替换为p标记。
输入:
<div><h1>First</h1><h1 align='center'>Second</h1></div><span>third</span>
预期输出:
<p><h4>First</h4><h4 align='center'>Second</h4></p><span>third</span>
2) 只删除几个html标签
示例:删除div和h1标记。
输入:
<div><h4>First</h4><h1 align='center'>Second</h1></div>
预期输出:
<h4>First</h4>Second
fyi:我试过使用
Regex.Replace(html, @"</?h1>", "")
但如果标签具有属性,则不会删除。
您可以在正则表达式中使用捕获组,并根据此处的文档在替换中使用它们:http://msdn.microsoft.com/en-us/library/e7f5w83z
//to remove all h1 tags:
Regex.Replace(html, @"</?h1[^>]*>", "")
//to replace all div tags with p, keeping the same attributes:
Regex.Replace(html, @"(</?)div([^>]*>)", "$1p$2")
//to change the attributes of the div tags you will need two regexes:
//one for the opening tags
Regex.Replace(html, @"<div[^>]*>", "<p class='content'>")
//one for the closing tag
Regex.Replace(html, @"</div>", "</p>")
添加最后一个示例是为了回答一个注释,之所以需要两个,是因为字符串的新部分(将要添加的部分)不同。
您尝试过正则表达式</?(h1|div)[^>]*>
吗?(或者,如果只想删除h1
标签,</?h1[^>]*>
?)