我尝试用下面的代码替换它,但是我收到一个错误,“无法识别的转义序列”。
string originalPath = @"C:\project\temp\code";
string newPath = "";
newPath = originalPath.Replace("C:\project\temp", "C:\project\files");
答案 0 :(得分:1)
每个带有反斜杠的字符串文字都需要加倍的baskslashes,或者带引号字符串的@符号。
'无法识别的转义序列'是“\ p”。
试试这个:
newPath = originalPath.Replace(@"C:\project\temp", @"C:\project\files");
答案 1 :(得分:1)
我认为你应该使用双倍'/',因为第一个字符串是'@'而第二个字符串不是。
如果它不起作用,我建议使用string.contains和Put \ n找到temp的实例,然后在其后添加带有文件的字符串。
如果不起作用,请尝试使用正则表达式。
答案 2 :(得分:1)
在字符串声明中,如果使用@Wisil,则字符串将保持不变,实际上您无需担心转义序列。
您已使用@符号创建了OriginalPath变量,因此它将被视为:
originalPath =“C:\ project \ temp \ code”;
因此,以下两个陈述均有效:
1.string originalPath = @"C:\project\temp\code";
2.string originalPath = "C:\\project\\temp\\code";
因此,在替换字符串时,您可以使用以下任一方式:
解决方案1:
newPath = originalPath.Replace("C:\\project\\temp","C:\\project\\files");
解决方案2:
newPath = originalPath.Replace(@"C:\project\temp", @"C:\project\files");