正则表达式替换c#中的自关闭html标签

时间:2014-02-18 06:26:11

标签: c# html regex

我有一个xml,其中也包含一些html标签。当一个标签进来时,它会破坏页面,因为它是一个自我关闭的标签。类似的东西:

<iframe width="420" height="315" src="//www.youtube.com/embed/6krfYKxJFqA" frameborder="0" />

我想替换它并将其转换为:

任何人都可以使用正则表达式提供c#代码来执行此操作。我试过了:

tmp = tmp.Replace("(<iframe[^>]*)(\\s*/>)", "$1></iframe>");

tmp = new Regex(@"(<iframe[^>]*)(\\s*/>)").Replace(tmp, "$1></iframe>");

tmp是包含大量代码的xml +此iframe标记为字符串。

但没有结果。

2 个答案:

答案 0 :(得分:1)

尝试将其作为匹配表达式:

<iframe(.*?)(["\d\w\s])\/>

请注意,您可以使用http://regexpal.com/来测试正则表达式,这非常方便。

答案 1 :(得分:0)

在第二个正则表达式中,您不需要you are using @的双反斜杠。

此外,(<iframe[^>]*)也与上一个/匹配,请使用非贪婪的?运算符:(<iframe[^>]*?)(\s*/>)