0

我尝试用下面的代码替换它,但出现错误“无法识别的转义序列”。

string originalPath = @"C:\project\temp\code";
string newPath = "";

newPath = originalPath.Replace("C:\project\temp", "C:\project\files");
4

3 回答 3

1

我认为你应该使用双 '/' ,因为第一个字符串是 '@' 而第二个不是。

如果它不起作用,我建议使用 string.contains 找到 temp 的实例,然后将 \n 放在那里,然后将字符串附加到 files 。

如果它不起作用,请尝试使用 regex 。

于 2013-11-07T02:15:37.010 回答
1

每个带有反斜杠的字符串文字都需要双斜杠或带引号的字符串的 @ 符号。

“无法识别的转义序列”是“\p”。

尝试这个:

newPath = originalPath.Replace(@"C:\project\temp", @"C:\project\files");
于 2013-11-07T02:13:02.627 回答
1

在字符串声明中,如果您使用 @Symbol,那么 String 将被原封不动地采用,实际上您无需担心转义序列。

您已经使用 @ 符号创建了 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");

于 2013-11-07T02:37:27.407 回答