2016-01-30 51 views
5

如果我這樣做:如何在C#中使用regex.replace替換用反斜槓單個字符

Regex.Replace("unlocktheinbox.com", "[t]", "\\$&"); 

我的結果是:

"unlock\\theinbox.com" 

我期待它是

"unlock\theinbox.com" 

我試圖用「\ t」替換「t」使用regex.replace。我做這個例子非常基本,可以解釋我想要完成的事情。

+2

試試這個'Regex.Replace( 「unlocktheinbox.com」, 「[T]」,@ 「\」);' – tchelidze

+3

不,你的例子按預期提供工作。如果您將觀察結果置於Visual Studio的watch/locals窗口中,它只會顯示「unlock \\ theinbox.com」,\\表示它是一個反斜槓,但是在字符串中必須轉義。如果你將'Console.WriteLine'移出結果字符串,它會正確顯示。 –

+3

您的輸出是正確的,但調試器將結果顯示爲有效的C#字符串。嘗試將其寫入控制檯,例如,你會看到。 –

回答

3

嘗試以下

var result = Regex.Replace("unlocktheinbox.com", "[t]", @"\"); 

需要注意的是,如果你觀察result同時通過對result鼠標懸停調試。它看起來像unlock\\theinbox.com,因爲\已被轉義。但實際上,如果打印result或在任何地方使用它會unlock\theinbox.com

相關問題