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

我希望有一个正则表达式来检查字符串是否只包含大小写字母、数字和下划线

要匹配仅包含这些字符的字符串(或空字符串),请尝试

“^[a-zA-Z0-9\]*$”

这适用于.NET正则表达式,可能还有许多其他语言

细分:

^:字符串的开头
[:字符组的开头
a-z:任何小写字母
A-Z:任何大写字母
0-9:任意数字
_:下划线
]:字符组的结尾
*:零个或多个给定字符
$:字符串结尾

如果不希望允许空字符串,请使用+而不是*


正如其他人所指出的那样,一些正则表达式语言有一个[a-zA-Z0-9.]的速记形式。在.NET正则表达式语言中,可以启用ECMAScript行为并使用\w作为简写(产生^\w*$^\w+$)。请注意,在其他语言中,默认情况下在.NET中,\w稍宽一些,并且也将匹配其他种类的Unicode字符(感谢Jan指出这一点)。因此,如果您真的打算只匹配那些字符,那么使用显式(较长)形式可能是最好的

发表评论