Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由于正则表达式批注中无法识别转义序列,ASP.Net MVC3应用程序未编译_C#_Regex_Asp.net Mvc 3_Razor - Fatal编程技术网

C# 由于正则表达式批注中无法识别转义序列,ASP.Net MVC3应用程序未编译

C# 由于正则表达式批注中无法识别转义序列,ASP.Net MVC3应用程序未编译,c#,regex,asp.net-mvc-3,razor,C#,Regex,Asp.net Mvc 3,Razor,我正在尝试使用正则表达式验证名称输入字段。正则表达式非常简单,因为我只想允许字母和空格(目前)。以下是我正在使用的代码: [RegularExpression("[A-Za-z\s]+",ErrorMessage="UserName can only consist of letters or spaces")] [Required] [DisplayName("User Name")] public string UserName { get; set; } 然而,当

我正在尝试使用正则表达式验证名称输入字段。正则表达式非常简单,因为我只想允许字母和空格(目前)。以下是我正在使用的代码:

[RegularExpression("[A-Za-z\s]+",ErrorMessage="UserName can only consist of letters or spaces")]
    [Required]
    [DisplayName("User Name")]
    public string UserName { get; set; }
然而,当我尝试构建它时,我得到一个错误,指定了一个“无法识别的转义序列”。我注意到,一些人会构建,一些人不会:

将生成:///b/n

不会生成:/s/k/B/D/D//(逃逸空间)


有人能解释一下为什么这些表达式中有些有效,有些无效,更确切地说,我怎样才能使我想要的表达式(空格和字母)起作用呢?

尝试
\\s
而不是
\s
如果字符串没有预先转义,那么
\s
在到达正则表达式处理器之前将其转义

尝试
\\s
而不是
\s
如果字符串未预先转义,则
\s
在到达正则表达式处理器之前将其转义

编译器处理字符串的方式与反斜杠处理字符串的方式完全相同。反斜杠是转义字符的条目。试试这个:

[RegularExpression(@"[A-Za-z\s]+",ErrorMessage="UserName can only consist of letters or spaces")]
@符号告诉编译器您正在处理任何转义字符

另一个例子是文件路径。。反斜杠必须用双反斜杠转义:

string fileName = "C:\\my_folder\\my_file.ext";
..否则,您可以使用@符号:

string fileName = @"C:\my_folder\my_file.ext";

编译器处理字符串的方式与反斜杠处理字符串的方式完全相同。反斜杠是转义字符的条目。试试这个:

[RegularExpression(@"[A-Za-z\s]+",ErrorMessage="UserName can only consist of letters or spaces")]
@符号告诉编译器您正在处理任何转义字符

另一个例子是文件路径。。反斜杠必须用双反斜杠转义:

string fileName = "C:\\my_folder\\my_file.ext";
..否则,您可以使用@符号:

string fileName = @"C:\my_folder\my_file.ext";