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

标签 regex

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

最佳答案

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

"^[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/

相关文章:

regex - 如何使用正则表达式检测 float

RegEx IP 范围 A 类网络

regex - 限制输入数据

regex - ingress rewrite-target 中编号的占位符是什么意思?

java - ANTLR:循环与字符 '%' 处的任何内容都不匹配

php - 在获取 PHP 正则表达式匹配时遇到问题

javascript - 我如何才能只删除文本中的最后一个数字

Java 和正则表达式

Java 正则表达式不工作 - 为什么?

c# - 出现特殊词后搜索