2012-08-15 42 views
3

我正在用黑色空格替換字符「\」。字符串消息的問題= Regex.Replace(message,「\」,「」);

這裏是字符串,

string message = "http:\/\/www.youtube.com\/v\/" 
string message = Regex.Replace(message , "\\", ""); 

,但它不能正常工作,輸出消息假設是「http://www.youtube.com/v/」 任何人都可以請幫我,謝謝!

+0

我發現問題不是,因爲我輸出它,所以字符串實際上包含「\\ /」而不是「\ /」。所以string message = Regex.Replace(message,@「\\」,「」);解決問題... – Jerry 2012-08-15 13:18:33

回答

6

你的字符串沒有反斜槓!

字符串中的單個反斜槓具有「轉義」下一個字符的特殊屬性。因此,您的字符串確實包含此:

http://www.youtube.com/v/

字符串中的每一個反斜槓轉義下一個斜槓。這不是一個真正的反斜槓字符,因此對這個字符的搜索將不會導致任何結果。

編輯:根據我的編譯器,\/不是一個有效的轉義序列。正斜槓沒有特殊含義,因此不能逃脫。您的字符串在技術上無效。根據你如何得到這個字符串,你有不同的選擇。字符串前的徵兆@配售:

string message = @"http:\/\/www.youtube.com\/v\/" 

將逐字查看,逃避什麼(除了關閉引號)。在這種情況下,您的字符串中會有可以替換的實際反斜槓字符。

正如在其他的答案中提到,要更換你實際需要四,像這樣一個反斜槓:

Regex.Replace(message, "\\\\", ""); 
3

你不需要逃避斜線:

string message = "http://www.youtube.com/v/"; 

是一個非常好的串文字。

Replace不起作用,因爲反斜槓\是C#的字符串文字和正則表達式中的轉義符號。因此,您需要四個反斜槓來匹配字符串中的單個反斜槓。

1

字符串message不包含任何\字符。你根本不必逃避/個字符。

如果你想有串只是因爲它顯示,使用@標誌:

string message = @"http:\/\/www.youtube.com\/v\/"; 
1

沒有錯在你的字符串。您可以直接使用「http://www.youtube.com/v/」作爲消息。 /不需要轉義。這是一個完全合法的性格。

如果您想使用其他特殊字符,可以使用逐字字符串文字。它以@開頭,也用雙引號括起來。

如果你想替換「/」,你可以直接使用YourString.Replace(「/」,「」)方法。