我试图找出包含单引号或双引号的字符串是否还包含反斜杠字符以逃避它
我注意到在c#上,如果我有以下两个字符串
string escaped = "It\'s awesome. \"Yes it is\" ";
string nonEscaped = "It's awesome. Yes it is";
然后它们以完全相同的方式打印出来(双引号除外):
太棒了。是的,它是
太棒了。 “是的,是”
这是有道理的,因为转义字符不会打印出来......
但是,我正在尝试编写一个函数来识别它和“是的”是使用转义字符的单引号和双引号...
有办法吗?
答案 0 :(得分:1)
”
和\”
实际上相同。反斜杠用于转义引号,因为您不能直接将其写在那里,因为C#编译器会将其检测为字符串的结尾。叛逆者也是这样,因为我们用它们来围绕个别角色。因此,如果你想获得一个单一的叛逆角色,你必须逃脱它:'\’’
因此,要回答您的问题,’
和\’
字符之间存在无差异,因此无法确定它。您可以通过下一个代码进行检查:
string a = "'";
string b = "\'";
Console.WriteLine (a == b); // True
Console.WriteLine (a.Equals(b)); // True
详细了解如何在C#中转义字符:CodeProject。
答案 1 :(得分:-1)
尝试Regex.Unescape(String)方法