2015-05-26 64 views
0

代替空格我用下面的代碼做不敏感的情況下更換:正則表達式用斜線

returned = Regex.Replace(source, Regex.Escape(oldValue), 
           Regex.Escape(newValue), 
           RegexOptions.IgnoreCase); 

Regex.Escape導致我的空間由一個\

source = "Description: <module>"; 
oldValue = "<module>"; 
newValue = "Module 1 - Upload Data File"; 
returned = "Description: Module\ 1\ -\ Upload\ Data\ File"; 

我被替換知道它的工作原理,如果我刪除了Regex.Escape,但我會說實話我不記得我爲什麼使用Regex.Escape,但一定有一個原因,我不想打破以前工作的任何東西。

任何想法如何解決\處理這個?

謝謝。

+0

你的價值觀是什麼? – Aradmey

+0

我得到了我的答案,但我更新了這個問題的值,所以它可能更容易閱讀下一個人!對不起,如果它不明確! – Thierry

回答

1

Regex.Escape方法:轉義最小的一組字符(?:\。*,+,|,{,[,(,),^,$,#和空格)通過用它們的轉義代碼替換它們。這指示正則表達式引擎逐字地解釋這些字符而不是元字符。

你不應該逃避newValue變量,因爲它會與它的逃逸代碼替換任何空白:

來源:' ' - >要:'\ '

嘗試從Regex.Escape(newValue)中刪除Regex.Escape,它應該工作。

+0

工作。謝謝。 – Thierry