c# - 从字符串中删除脚本和链接标签
问题描述
我正在尝试从字符串中删除script
和link
标记。以下是我到目前为止得到的。
代码
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);
有没有更好的方法不用手动写数字?
解决方案
使用反向引用,我改进了@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, "");
推荐阅读
- javascript - 如何从外部链接导航到引导程序 4 的特定选项卡
- ffi - 尝试创建绑定的访问器名称冲突
- hibernate - 由带有 LazyNoProxy 注释的 JoinColumns 映射的实体的提取不适用于标准查询 - 导致 n + 查询
- javascript - 如何使用图片点击事件
- swift - 如何使用快速编码根据特定的排序顺序对自定义对象进行排序
- url - 如何使用带有“单击此处”标签的 pdfbox 在 pdf 中插入 URL 以重定向到网站?
- caching - 什么样的大数据框架可以实现毫秒级的数据转换?
- java - 转换设置
列出 在java中? - hive - 在创建表中无法识别列规范时间戳
- cypress - 带有重试的赛普拉斯请求