早上好编译选项,Regex.Replace在一个周期
比方说,我有下面的代码,这attemps从每个字符串中给定的列表中删除任何空白:
foreach (String StrTmp in SomeList)
Regex.Replace(StrTmp, @"\p{Z}", "", RegexOptions.Compiled)
由于RegexOptions.Compiled
的文档说,“这会产生更快的执行速度,但会增加启动时间”,我想知道这个增加的启动时间是指整个程序的启动时间还是指周期内每个Regex.Replace
函数调用的启动,因此使整个循环变慢。
顺便说一句......是不是有任何Regex.Remove(.,.)
命令来删除给定的正则表达式的每一次发生?基本上这与上述相同,但可以更短,更优雅。
非常感谢。
错了,看看我的评论。 – Migol 2010-11-22 09:33:04
什么是'错误'?是的,静态正则表达式会被缓存,但是使用编译选项可以获得30%的运行时性能优势。究竟哪个更快取决于 - http://blogs.msdn.com/b/bclteam/archive/2010/06/25/optimizing-regular-expression-performance-part-i-working-with-the-regex-class-和-regex-objects.aspx - 但除非你的主题字符串非常大,我认为这是微不足道的差异。 – mikel 2010-11-22 09:44:47