早上好編譯選項,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