首页 > 解决方案 > 从字符串中删除脚本和链接标签

问题描述

我正在尝试从字符串中删除scriptlink标记。以下是我到目前为止得到的。

代码

rawHtml = rawHtml.Remove(rawHtml.IndexOf("<script"), (rawHtml.LastIndexOf("</script>") - 
          rawHtml.IndexOf("<script")) + 5);

rawHtml = rawHtml.Remove(rawHtml.IndexOf("<link"), (rawHtml.LastIndexOf("/>") - 
          rawHtml.IndexOf("<link")) + 3);

有没有更好的方法不用手动写数字?

标签: c#htmlstring

解决方案


使用反向引用,我改进了@HockeyJ 答案:而不是:

Regex rRemScript = new Regex(@"<script[^>]*>[\s\S]*?</script>");
hTMLText = rRemScript.Replace(hTMLText, "");

// Remove link content
Regex rRemLink = new Regex(@"<link[^>]*>[\s\S]*?</link>");
hTMLText = rRemLink.Replace(hTMLText, "");

// Remove style content
Regex rRemStyle = new Regex(@"<style[^>]*>[\s\S]*?</style>");
hTMLText = rRemStyle.Replace(hTMLText, "");

只需使用:

Regex rRemScript = new Regex(@"<(script|link|style)[^>]*>[\s\S]*?</\1>");
hTMLText = rRemScript.Replace(hTMLText, "");

推荐阅读