Regex 字母数字和下划线c的正则表达式#

Regex 字母数字和下划线c的正则表达式#,regex,asp.net-mvc-5,data-annotations,Regex,Asp.net Mvc 5,Data Annotations,我正在使用ASP.NET MVC 5应用程序,我想在其中为名称字段添加dataannotation验证 只接受数字、字符和分数不足的任意组合 我试过了,但没有成功: RegularExpression("([a-zA-Z0-9_ .&'-]+)", ErrorMessage = "Invalid.")] 请尝试在regexr.com网站下编写此正则表达式 标准-字母数字、下划线和空格 ([a-zA-Z0-9\\ s]+)您使用的是a,即方括号之间的东西([a-zA-Z0-9\.&'-

我正在使用ASP.NET MVC 5应用程序,我想在其中为名称字段添加dataannotation验证

只接受数字、字符和分数不足的任意组合

我试过了,但没有成功:

RegularExpression("([a-zA-Z0-9_ .&'-]+)", ErrorMessage = "Invalid.")]

请尝试在regexr.com网站下编写此正则表达式

标准-字母数字、下划线和空格

([a-zA-Z0-9\\ s]+)

您使用的是a,即方括号之间的东西(
[a-zA-Z0-9\.&'-]
)。在该方括号内,您可以定义该类应匹配的所有字符。所以,现在很容易了:你允许你不想匹配的字符

根据您的“尝试”,您可以将此更改为

[a-zA-Z0-9_]
这似乎就是你想要匹配的角色。但这真的是你需要的吗?这真的是该字段可以使用的唯一字符吗

如果是,那么你就完成了

如果否,您可能希望添加所有语言的所有字符。幸运的是,有一个解决方案:

\p{L}
所有字母字符

还有一个预定义的组可能对您有用:

\w
匹配任何单词字符(定义也可以在第一个链接中找到,包括Unicode类别Ll、Lu、Lt、Lo、Lm、Nd、Pc,基本上是[a-zA-Z0-9],但Unicode样式包含所有字母和更多连接字符)


但是,如果你想匹配真名,这并不能涵盖所有可能的名字。关于这个主题,我有另一个答案

请给出一个未正确验证的输入示例?Karan,但现在我的要求已更改,现在我希望按照堆栈溢出最佳实践将其用于字母数字、下划线和空格-请在此处输入答案,而不是依赖外部链接,谢谢。