是否有正则表达式检查字符串是否只包含大写字母、小写字母、数字和下划线?
当前回答
嗯…问题:它是否至少需要一个字符?它可以是空字符串吗?
^[A-Za-z0-9_]+$
将至少做一个大写或小写字母数字或下划线。如果它的长度可以为零,那么只需用+替换*:
^[A-Za-z0-9_]*$
如果需要包含变音符字符(例如cedilla - ç),那么您将需要使用单词character,其功能与上述相同,但包括变音符字符:
^\w+$
Or
^\w*$
其他回答
Use
^([A-Za-z]|[0-9]|_)+$
...如果你想要明确,或者:
^\w+$
...如果您更喜欢简洁(Perl语法)。
我相信您在匹配中没有使用拉丁字符和Unicode字符。
例如,如果需要使用“ã”或“ü”字符,则使用“\w”将不起作用。
你也可以使用这种方法:
^[A-ZÀ-Ýa-zà-ý0-9_]+$
这里有很多冗长的内容,我非常反对,所以,我的结论是:
/^\w+$/
\w等价于[A-Za-z0-9_],这就是你想要的(除非我们在混合中引入Unicode)。
使用+量词可以匹配一个或多个字符。如果你也想接受一个空字符串,使用*代替。
对于Java,只允许不区分大小写的字母数字和下划线。
^匹配以任何字符开头的字符串 [a-zA-Z0-9_]+匹配字母数字字符和下划线。 $匹配以0或多个字符结尾的字符串。 公共类RegExTest { public static void main(String[] args) { System.out.println(“_C #”.matches (" ^ [a-zA-Z0-9_] + $ ")); } }
你想要检查每个字符是否符合你的要求,这就是为什么我们使用:
[A-Za-z0-9_]
你甚至可以用简写的形式:
\w
这是等价的(在某些正则表达式中,所以在使用它之前一定要检查一下)。然后,为了表明整个字符串必须匹配,您使用:
^
若要指示字符串必须以该字符开头,则使用
$
若要指示字符串必须以该字符结束。然后使用
\w+ or \w*
表示“1或多个”,或“0或多个”。综上所述,我们有:
^\w*$
推荐文章
- 如何从JavaScript中使用正则表达式的字符串中剥离所有标点符号?
- 正则表达式中的单词边界是什么?
- 如何将一个标题转换为jQuery的URL段塞?
- Javascript和regex:分割字符串并保留分隔符
- (grep)正则表达式匹配非ascii字符?
- 如何在保持原始字符串的同时对字符串执行Perl替换?
- 创建正则表达式匹配数组
- *的区别是什么?和。*正则表达式?
- 如何将“camelCase”转换为“Camel Case”?
- 在Java中使用正则表达式提取值
- Java中的正则表达式命名组
- 使用正则表达式搜索和替换Visual Studio代码
- 使用split("|")按管道符号拆分Java字符串
- 替换字符串中第一次出现的模式
- “\d”在正则表达式中是数字吗?