我正在用黑色空格替换字符“\”。字符串消息的问题= Regex.Replace(message,“\”,“”);
这里是字符串,
string message = "http:\/\/www.youtube.com\/v\/"
string message = Regex.Replace(message , "\\", "");
,但它不能正常工作,输出消息假设是“http://www.youtube.com/v/” 任何人都可以请帮我,谢谢!
我正在用黑色空格替换字符“\”。字符串消息的问题= Regex.Replace(message,“\”,“”);
这里是字符串,
string message = "http:\/\/www.youtube.com\/v\/"
string message = Regex.Replace(message , "\\", "");
,但它不能正常工作,输出消息假设是“http://www.youtube.com/v/” 任何人都可以请帮我,谢谢!
你的字符串没有反斜杠!
字符串中的单个反斜杠具有“转义”下一个字符的特殊属性。因此,您的字符串确实包含此:
字符串中的每一个反斜杠转义下一个斜杠。这不是一个真正的反斜杠字符,因此对这个字符的搜索将不会导致任何结果。
编辑:根据我的编译器,\/
不是一个有效的转义序列。正斜杠没有特殊含义,因此不能逃脱。您的字符串在技术上无效。根据你如何得到这个字符串,你有不同的选择。字符串前的征兆@
配售:
string message = @"http:\/\/www.youtube.com\/v\/"
将逐字查看,逃避什么(除了关闭引号)。在这种情况下,您的字符串中会有可以替换的实际反斜杠字符。
正如在其他的答案中提到,要更换你实际需要四,像这样一个反斜杠:
Regex.Replace(message, "\\\\", "");
你不需要逃避斜线:
string message = "http://www.youtube.com/v/";
是一个非常好的串文字。
Replace
不起作用,因为反斜杠\
是C#的字符串文字和正则表达式中的转义符号。因此,您需要四个反斜杠来匹配字符串中的单个反斜杠。
字符串message
不包含任何\
字符。你根本不必逃避/
个字符。
如果你想有串只是因为它显示,使用@
标志:
string message = @"http:\/\/www.youtube.com\/v\/";
没有错在你的字符串。您可以直接使用“http://www.youtube.com/v/”作为消息。 /不需要转义。这是一个完全合法的性格。
如果您想使用其他特殊字符,可以使用逐字字符串文字。它以@开头,也用双引号括起来。
如果你想替换“/”,你可以直接使用YourString.Replace(“/”,“”)方法。
我发现问题不是,因为我输出它,所以字符串实际上包含“\\ /”而不是“\ /”。所以string message = Regex.Replace(message,@“\\”,“”);解决问题... – Jerry 2012-08-15 13:18:33