2016-06-07 64 views
1

我试图找出包含单个或双引号的字符串是否也包含一个反斜杠字符转义字符或不识别已经被转义

我注意到,在C#的,如果我有以下两种串

string escaped = "It\'s awesome. \"Yes it is\" "; 
string nonEscaped = "It's awesome. Yes it is"; 

然后他们得到完全相同的方式打印出来(除了双引号):

这真棒。是的它是

太棒了。 “是的,它是”

这是有道理的,因为转义字符不要让打印出来......

不过,我试图写一个函数来确定它是和“是的,它是”正在使用单引号和双引号的转义字符...

有没有办法做到这一点?

回答

1

\”实际上是相同。因为C#编译器会将其检测为字符串的结尾,所以不能直接在该处使用反斜杠来标记引号。对于我们使用它们来包围单个角色的人来说,同样如此。所以,如果你想让你有一个单一的APOSTROPH字符转义:'\’’

因此,要回答你的问题,有\’字符之间没有任何区别所以没有办法确定的。您可以通过下面的代码检查它:

string a = "'"; 
string b = "\'"; 
Console.WriteLine (a == b); // True 
Console.WriteLine (a.Equals(b)); // True 

了解更多关于转义字符的C#:CodeProject

+0

是的,我明白了。我只想编写一些逻辑来检查是否在单引号之前添加了反斜杠(现在让我们忘记双引号)。 – user3587624

+0

请检查更新的答案。 –

+0

所以你说的是,C#没有办法找出一个字符串在单引号前是否有反斜杠。对? C#会说“这很棒”和“它很棒”总是一样的。正确? – user3587624