Regular expression for alphanumeric and underscores
Regular expression for alphanumeric and underscores
是否有一个正则表达式,可以检查一个字符串是否只包含大小写字母、数字和下划线?
admin 更改状态以发布 2023年5月21日
这里有很多冗长的内容,我对此非常不赞同,所以我的最终答案是:
/^\w+$/
\w
等效于[A-Za-z0-9_]
,这很符合你的需求(除非我们将Unicode引入其中)。
使用+
量词可匹配一个或多个字符。如果还想匹配空字符串,请换用*
。
要匹配只包含这些字符的字符串(或空字符串),请尝试
"^[a-zA-Z0-9_]*$"
这对于.NET正则表达式以及许多其他语言都有效。
分解:
^ : start of string [ : beginning of character group a-z : any lowercase letter A-Z : any uppercase letter 0-9 : any digit _ : underscore ] : end of character group * : zero or more of the given characters $ : end of string
如果您不想允许空字符串,请使用+
而不是*
。
正如其他人指出的那样,某些正则表达式语言具有[a-zA-Z0-9_]
的简写形式。在.NET正则表达式语言中,您可以打开ECMAScript行为并使用\w
作为简写(产生^\w*$
或^\w+$
)。请注意,在其他语言中,默认情况下.NET中,\w
范围较广,将匹配其他类型的Unicode字符(感谢Jan指出这一点)。因此,如果您真的打算只匹配这些字符,则使用显式(更长)形式可能是最好的。