我希望有一个正则表达式来检查字符串是否只包含大小写字母、数字和下划线
要匹配仅包含这些字符的字符串(或空字符串),请尝试
“^[a-zA-Z0-9\]*$”
这适用于.NET正则表达式,可能还有许多其他语言
细分:
^:字符串的开头
[:字符组的开头
a-z:任何小写字母
A-Z:任何大写字母
0-9:任意数字
_:下划线
]:字符组的结尾
*:零个或多个给定字符
$:字符串结尾
如果不希望允许空字符串,请使用+而不是*
正如其他人所指出的那样,一些正则表达式语言有一个[a-zA-Z0-9.]的速记形式。在.NET正则表达式语言中,可以启用ECMAScript行为并使用\w作为简写(产生^\w*$或^\w+$)。请注意,在其他语言中,默认情况下在.NET中,\w稍宽一些,并且也将匹配其他种类的Unicode字符(感谢Jan指出这一点)。因此,如果您真的打算只匹配那些字符,那么使用显式(较长)形式可能是最好的