求教:正则表达式的效率问题
//去除<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有什么意义?要怎么再提升效率?
谢谢大家了