如何在字符串中写反斜杠()

本文关键字:字符串 | 更新日期: 2023-09-27 18:29:43

我想在textbox:中写这样的C:'Users'UserName'Documents'Tasks

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"'Tasks";

我得到错误:

无法识别的转义序列。

如何在字符串中写反斜杠?

如何在字符串中写反斜杠()

反斜杠("'")字符是一个特殊的转义符,用于指示其他特殊字符,如换行符('n)、制表符('t)或引号('")。

如果要包含反斜杠字符本身,则需要两个反斜杠或使用@逐字逐句字符串:

var s = "''Tasks";
// or 
var s = @"'Tasks";

阅读MSDN文档/C#规范,其中讨论了使用反斜杠字符转义的字符以及逐字逐句字符串文字的使用。

一般来说,大多数C#.NET开发人员在构建文件/文件夹路径时倾向于使用@逐字逐句字符串,因为这可以避免他们一直写双反斜杠,而且他们可以直接复制/粘贴路径,所以我建议你养成这样做的习惯。


话虽如此,在这种情况下,我实际上建议您使用@lordkain的答案中的Path.Combine实用程序方法,因为这样您就不必担心路径中是否已经包含反斜杠,并且在组合部分路径时意外地将斜杠加倍或完全省略。

要转义反斜杠,只需使用其中的2个,如下所示:''

如果你需要逃避其他事情,这可能会有所帮助。。

有一个为这个Path.Combine()制作的特殊函数

var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");

只需使用+"''Tasks"或使用类似@"'Tasks"的逐字字符串即可逃离"'"

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"'''Tasks";

放一个双反斜杠而不是一个单反斜杠。。。

尽管这篇文章很旧,但我还是尝试了一些对我的案例有效的东西。

我想创建一个字符串变量,其值如下:

21541_12_1_13'":null

所以我的方法是这样的:

  • 使用逐字构建字符串

    string substring=@"21541_12_1_13''":null";

  • 然后使用remove函数删除不需要的反斜杠

    string newsubstring=子字符串。拆除(13,1);

希望能有所帮助。干杯