2011-05-11 48 views
0

嗨我有一个免费的文本编辑器,用于在我的网站上用C#作为代码的博客帖子。我用下面的正则表达式来去除所有的HTML标记出来后的安全性:需要修改我的正则表达式忽略iframe标签

Regex.Replace(value, @"<(.|\n)*?>", string.Empty); 

但是我现在有一个要求,让YouTube视频,它使用iframe嵌入,例如:

<iframe width="425" height="349" src="http://www.youtube.com/embed/ttBhGiuMUmU" frameborder="0" allowfullscreen></iframe> 

有人可以帮我修改这个正则表达式来允许这个吗?

回答

1

尝试这一个:

<(?!/?iframe)(.|\n)*?> 

(?!/?iframe)是负先行,即检查该<后面没有一个iframe/iframe

我测试online here on regexr

+0

这似乎工作谢谢! – lisburnite 2011-05-11 09:11:20

+0

需要转义的“/”否则会给出错误。所以正则表达式应该是'<(?!\ /?iframe)(。| \ n)*?>'。这是[在线演示](http://regexr.com/3ggfl) – Sinha 2017-08-05 11:56:33