var phone = @"^\+(?:[0-9] ?){6,14}[0-9]$";
然后电话将等于^\\+(?:[0-9] ?){6,14}[0-9]$
我认为(并且我发现的示例似乎表明)@ 字符意味着我的字符串是如何拥有它的。为什么它会加倍 \ 以及如何阻止它?
Visual Studio 调试器会将其显示为双倍,因为在 C# 中,\ 将在转义序列之前。别担心 - 你的字符串没有改变。
它看起来只是在调试检查器中翻了一番。
请注意,检查器中显示的字符串不以开头@
- 它们显示如果您要在没有@
. 这两种形式是等价的。
如果您真的担心字符串的内容,请将其输出到控制台应用程序中。
以另一种方式重申,比较
var equal = @"^\+(?:[0-9] ?){6,14}[0-9]$" == "^\\+(?:[0-9] ?){6,14}[0-9]$"
永远都是true
。一样,
var equal = @"\" == "\\";