是否有一个正则表达式可以检查字符串是否只包含大小写字母、数字和下划线?
最佳答案
要匹配仅包含这些字符(或空字符串)的字符串,请尝试
"^[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 指出了这一点)。因此,如果您确实打算仅匹配这些字符,那么使用显式(较长)形式可能是最好的。
关于regex - 字母数字和下划线的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336210/