我需要做字符串替換...我需要處理的只有少數病例:任何改善Regex.Replace性能的方法?
1) optional case insensitive
2) optional whole words
現在,我使用_myRegEx.Replace()...如果指定了#1,我添加RegexOptions.IgnoreCase標誌。如果指定了#2,則將搜索詞包裝在\ b <字> \ b中。
這工作正常,但它真的很慢。我的基準測試需要1100ms,而使用String.Replace測試需要90ms。顯然,一些問題這樣做:
1) case insensitive is tricky
2) regex \b<word>\b will handle "<word>", " <word>", "<word> " and " <word> "... string replace would only handle " <word> ".
我已經使用了RegexOptions.Compiled標誌。
還有其他的選擇嗎?
@ M.kazemAkhgary,我沒有使用靜態,我正在使用實例...我已更新帖子以澄清。 – SledgeHammer
你如何實例化'Regex'實例?有一些正則表達式模式,因爲它是已知的緩慢[像這樣](http://stackoverflow.com/questions/9687596/slow-regex-performance),甚至微軟給出了[使用正則表達式的最佳實踐](https:/ /msdn.microsoft.com/en-us/library/gg578045(v=vs.110).aspx)。 –
@BagusTesa只是像新的正則表達式(「\ bTest \ b」,RegexOptions.Compiled | RegexOptions.IgnoreCase);對於案例1和2. – SledgeHammer