我正在尝试在C#中编写一个正则表达式来删除所有脚本标记及其中包含的任何内容。
到目前为止,我已经提出了以下内容:\<([^:]*?:)?script\>[^(\</<([^:]*?:)?script\>)]*?\</script\>
,但这不起作用。
我会分解并在每个部分解释我的想法:
\<([^:]*?:)?script\>
这里我试图声明它应该获取任何脚本元素,即使它带有名称空间的前缀,例如<a:script></a:script>.
我也将它添加到结束标记。
[^(\</<([^:]*?:)?script\>)]*?
我在此尝试声明除了</a:script>
,</script>
等之外,它应该允许在标记中包含任何内容。
\</script\>
我在这里声明它应该有一个结束标记。
有人能找到我错的地方吗?
答案 0 :(得分:15)
这个正则表达式可以解决问题:
\<(?:[^:]+:)?script\>.*?\<\/(?:[^:]+:)?script\>
您将通过这个简单的HTML遇到问题:
<script>
var s = "<script></script>";
</script>
你打算如何解决这个问题?使用HTML Agility Pack进行此类操作更为明智。
答案 1 :(得分:12)