Skip to main content
 首页 » 编程设计

c#之如何使用正则表达式删除空标签

2024年01月28日28grandyang

清理后,我得到了一堆空标签。我想删除它们,但到目前为止我一直在使用的表达方式:

Regex.Replace(clean, "(<[/a-zA-Z]+?)([^>]*?)(>)", "$1$3"); 

我看过一个讨论 here但这并没有让我清楚。我如何确保第一个和第二个发现的标签内容相同(将它们匹配在一起)除了斜杠?

请您参考如下方法:

您可以使用反向引用来确保结束元素的名称与开始标签的名称相匹配。这是我通过扩展 Konrad 的解决方案得到的模式:

result = Regex.Replace(input, @"<([^>/][^>]*)></\1>", String.Empty); 

这里的\1指的是模式中第一个匹配的组,由模式中的圆括号表示,它包围着开始元素的名称。