var phone = @"^\+(?:[0-9] ?){6,14}[0-9]$";
手机将等于^\\+(?:[0-9] ?){6,14}[0-9]$
我想(我发现的例子似乎表明)@字符意味着留下我的字符串我是如何拥有它的。为什么它会加倍\以及如何阻止它?
答案 0 :(得分:10)
visual studio调试器将显示它就好像它被加倍一样,因为在C#中\ a \将在转义序列之前。别担心 - 你的字符串没有改变。
答案 1 :(得分:4)
只有看起来就像在调试检查员中加倍了一样。
请注意,检查员中显示的字符串不以@
开头 - 如果没有@
,它们将显示如何编写字符串。 1}}。这两种形式是等价的。
如果您真的担心字符串的内容,请在控制台应用程序中输出。
答案 2 :(得分:1)
以另一种方式重申比较
var equal = @"^\+(?:[0-9] ?){6,14}[0-9]$" == "^\\+(?:[0-9] ?){6,14}[0-9]$"
始终为true
。就像那样,
var equal = @"\" == "\\";
如果使用Text Visualizer检查变量,您将看到普通的未转义字符串,就像您在声明verbatim时那样。