求教:正则表达式的效率问题
//去除<style></style>之间的内容
Regex re = new Regex(@"<style[\s\S]*?</style\s*?>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
text = re.Replace(text.ToString(), "");
//去除<!-- -->之间的内容
re = new Regex(@"<!--[\s\S]*?-->", RegexOptions.IgnoreCase | RegexOptions.Compiled);
text = re.Replace(text.ToString(), "");
//去除<script></script>之间的内容
re = new Regex(@"<script[\s\S]*?</script\s*?>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
text = re.Replace(text.ToString(), "");
问题主要是3个
1.因为不知道怎么对re重新赋值,就用= new Regex的方法,这样好吗?之前的那个regex的资源会自动回收的是么?
2.为了提高效率,<style[\s\S]*?</style\s*?>中间的懒惰限定*?去掉后会不会有漏洞
改成<style[\s\S]*</style\s*>还是怎么改?其他的两个式子也请帮忙看看
3.效率的问题,样本是个17k左右的网页文件,上面的耗时0.0136576
但是把RegexOptions.Compiled去掉后,耗时0.0002411
不是说Compiled可以提升运行速度的么,怎么反而是去掉后快啊?Compiled有什么意义?要怎么再提升效率?
谢谢大家了
Regex re = new Regex(@"<style[\s\S]*?</style\s*?>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
text = re.Replace(text.ToString(), "");
//去除<!-- -->之间的内容
re = new Regex(@"<!--[\s\S]*?-->", RegexOptions.IgnoreCase | RegexOptions.Compiled);
text = re.Replace(text.ToString(), "");
//去除<script></script>之间的内容
re = new Regex(@"<script[\s\S]*?</script\s*?>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
text = re.Replace(text.ToString(), "");
问题主要是3个
1.因为不知道怎么对re重新赋值,就用= new Regex的方法,这样好吗?之前的那个regex的资源会自动回收的是么?
2.为了提高效率,<style[\s\S]*?</style\s*?>中间的懒惰限定*?去掉后会不会有漏洞
改成<style[\s\S]*</style\s*>还是怎么改?其他的两个式子也请帮忙看看
3.效率的问题,样本是个17k左右的网页文件,上面的耗时0.0136576
但是把RegexOptions.Compiled去掉后,耗时0.0002411
不是说Compiled可以提升运行速度的么,怎么反而是去掉后快啊?Compiled有什么意义?要怎么再提升效率?
谢谢大家了
...全文
相关推荐
写出高效率的正则表达式技巧总结
在编写高效率正则表达式时,理解并关注以下几个关键要素至关重要:1. 效率的重要性: - 当正则表达式用于处理大量的数据或频繁执行时,如在服务器端验证大量用户输入或在网络爬虫中筛选数据,效率问
python中通过预先编译正则表达式提高效率
"本文主要探讨了如何在Python中通过预先编译正则表达式来提高程序执行效率。Python的re模块提供了编译正则表达式为RegexObject的方法,以优化多次使用同一正则表达式的场景。通过实例展
PHP正则表达式的效率 回溯与固化分组
正则表达式在PHP等编程语言中通过相应的函数库得以实现。正则表达式的效率问题在实际应用中非常重要。正则表达式引擎通常可以分为两大类:确定有限自动机(DFA)和非确定有限自动机(NFA)。
python正则表达式中的括号匹配问题
在Python的正则表达式中,括号`(`和`)`具有特殊含义,它们用于创建捕获组(capturing group)。捕获组的作用是将正则表达式的一部分作为一个单独的匹配项来处理,以便在匹配完成后能够单
PHP 正则表达式效率 贪婪、非贪婪与回溯分析(推荐)
</script>"在处理多个<script>标签时,会优先匹配到第一个</script>为止,从而避免过度匹配导致的问题。在PHP的正则表达式中,匹配效率和回溯是紧密相连的。


