字母数字和下划线c#的正则表达式
Regular expression for alphanumeric and underscore c#
我正在使用 ASP.NET MVC 5 应用程序,我想在其中为名称字段添加数据注释验证。
只接受数字、字符和小数的任意组合。
我试过这个但没有用:
RegularExpression("([a-zA-Z0-9_ .&'-]+)", ErrorMessage = "Invalid.")]
试试这个写在 regexr.com 网站下的正则表达式。
条件 - 字母数字、下划线和 space。
([a-zA-Z0-9_\s]+)
您使用的是 character class,即方括号 ([a-zA-Z0-9_ .&'-]
) 之间的内容。在该方括号内,您可以定义应与此 class 匹配的所有字符。所以,现在很简单:您允许您不想匹配的字符。
根据您的“尝试”,您可以将其更改为
[a-zA-Z0-9_]
这似乎是您要匹配的字符。但这真的是你需要的吗?这真的是该字段唯一可能的字符吗?
如果是,那么你就完成了。
如果不是,您可能想要添加所有语言的所有字符。幸运的是,有一个 Unicode property:
\p{L}
所有字母字符
还有另一个可能对您有用的预定义组:
\w
匹配任何单词字符(定义也可以在第link处找到,包括Unicode类别Ll,Lu,Lt,Lo,Lm,Nd,Pc,即基本上 [a-zA-Z0-9_] 但 Unicode 样式包含所有字母和更多连接字符)
但是,如果您想匹配真实姓名,这不会涵盖所有可能的姓名。关于这个话题我有另一个答案here
我正在使用 ASP.NET MVC 5 应用程序,我想在其中为名称字段添加数据注释验证。
只接受数字、字符和小数的任意组合。
我试过这个但没有用:
RegularExpression("([a-zA-Z0-9_ .&'-]+)", ErrorMessage = "Invalid.")]
试试这个写在 regexr.com 网站下的正则表达式。
条件 - 字母数字、下划线和 space。
([a-zA-Z0-9_\s]+)
您使用的是 character class,即方括号 ([a-zA-Z0-9_ .&'-]
) 之间的内容。在该方括号内,您可以定义应与此 class 匹配的所有字符。所以,现在很简单:您允许您不想匹配的字符。
根据您的“尝试”,您可以将其更改为
[a-zA-Z0-9_]
这似乎是您要匹配的字符。但这真的是你需要的吗?这真的是该字段唯一可能的字符吗?
如果是,那么你就完成了。
如果不是,您可能想要添加所有语言的所有字符。幸运的是,有一个 Unicode property:
\p{L}
所有字母字符
还有另一个可能对您有用的预定义组:
\w
匹配任何单词字符(定义也可以在第link处找到,包括Unicode类别Ll,Lu,Lt,Lo,Lm,Nd,Pc,即基本上 [a-zA-Z0-9_] 但 Unicode 样式包含所有字母和更多连接字符)
但是,如果您想匹配真实姓名,这不会涵盖所有可能的姓名。关于这个话题我有另一个答案here