我正在尝试用黑色空格替换字符“\”。
这是字符串,
string message = "http:\/\/www.youtube.com\/v\/"
string message = Regex.Replace(message , "\\", "");
但它无法正常工作,输出消息假设为“http://www.youtube.com/v/” 请有人帮助我,谢谢!
答案 0 :(得分:6)
你的字符串没有反斜杠!
字符串中的单个反斜杠具有“转义”下一个字符的特殊属性。因此,你的字符串确实包含这个:
字符串中的每个反斜杠都会转义下一个正斜杠。它不是一个真正的反斜杠字符,因此搜索该字符将不会产生任何结果。
编辑:根据我的编译器,\/
不是有效的转义序列。正斜杠没有特殊含义,因此无法逃脱。您的字符串在技术上无效。根据您获得该字符串的方式,您有不同的选择。在字符串前面放置一个符号@
:
string message = @"http:\/\/www.youtube.com\/v\/"
将按字面意思查看它,不会删除任何内容(除了近距离引用)。在这种情况下,您的字符串中将有可以替换的实际反斜杠字符。
正如其他答案中所提到的,要替换反斜杠,您实际需要四个,如下所示:
Regex.Replace(message, "\\\\", "");
答案 1 :(得分:3)
你不需要向前斜杠:
string message = "http://www.youtube.com/v/";
是一个非常好的字符串文字。
Replace
不起作用,因为反斜杠\
是C#的字符串文字和正则表达式中的转义符号。因此,您需要四个反斜杠来匹配字符串中的单个反斜杠。
答案 2 :(得分:1)
字符串message
不包含任何\
个字符。您根本不必转义/
个字符。
如果您想要显示字符串,请使用@
符号:
string message = @"http:\/\/www.youtube.com\/v\/";
答案 3 :(得分:1)
你的字符串没有错。您可以直接使用“http://www.youtube.com/v/”作为消息。 /不需要转义。这是一个完全合法的角色。
如果您想使用其他特殊字符,可以使用逐字字符串文字。它以@开头,也用双引号括起来。
如果你要替换“/”,你可以直接使用YourString.Replace(“/”,“”)方法。