Java 正则表达式,允许数字、字符或字母数字,但不允许空字符串或特殊字符

Java 正则表达式,允许数字、字符或字母数字,但不允许空字符串或特殊字符,java,regex,Java,Regex,我有数字、字母字符等输入。我有构建正则表达式来验证这一点,但无法验证空字符串。(不允许使用空字符串) 这是我的正则表达式 (^([A-Za-z]|[0-9])+$) 通过上述要求可以改进吗?您只需要这个正则表达式: ^[A-Za-z0-9]+$ 这将只允许字母(大写或小写)和数字。不允许使用空字符串,因为正则表达式将匹配长度为1或更多的输入 我有数字、字母字符等输入。我有常规的 表达式来验证此内容,但验证失败为空 字符串。(不允许使用空字符串)这是我的正则表达式 (^([A-Za-z]|[0

我有数字、字母字符等输入。我有构建正则表达式来验证这一点,但无法验证空字符串。(不允许使用空字符串) 这是我的正则表达式

(^([A-Za-z]|[0-9])+$)

通过上述要求可以改进吗?

您只需要这个正则表达式:

^[A-Za-z0-9]+$
这将只允许字母(大写或小写)和数字。不允许使用空字符串,因为正则表达式将匹配长度为1或更多的输入

我有数字、字母字符等输入。我有常规的 表达式来验证此内容,但验证失败为空 字符串。(不允许使用空字符串)这是我的正则表达式

(^([A-Za-z]|[0-9])+$)
您发布的正则表达式已经禁止使用空字符串。但是您应该使用如下方式组合[A-Za-z]和[0-9]:

^(\w)+$

如果希望它也接受空字符串,可以使用:


^(\w)*$

[0-9]
放在与
[A-Za-z]
相同的块中:
[A-Za-z0-9]
。同样,使用
Matcher.matches
而不是
find
可以消除对
^
$
的需求,因此您的正则表达式可以简单地
[A-Za-z0-9]+
。但是,保留开始和结束标记会使正则表达式更显式。它不适用于我它允许空字段,我在这里用不同的输入进行了测试fields@Sohan:您的测试不正确,我只是测试了一下,它成功了,再测试一次。@Sohan:看到这个演示:只有前3行匹配,但底部2行匹配(包括空字符串)不要。如果你看到我测试过的链接,如果其中一个字段为空,如果不做任何操作,并且没有显示reslt。我的情况也是如此。如果shld validate and throw ERROR字段留空,则未显示没有突出显示的结果表示匹配失败:)