Java Regex - 字母+数字,最少总数为3

时间:2016-04-23 17:57:53

标签: java regex

到目前为止我做了什么?

我一直在互联网上搜索整整一个小时,但我似乎无法找到它,大多数答案都是基于字母字符或仅仅是数字。我是一名正则表达式的初学者,我正在尝试学习它,但我不知道为什么这不起作用。

问题

我想要的是(对于搜索机器)输入是通过模式验证的。此模式必须包含3个字母和/或数字的最小组合。也允许使用特殊字符,但输入中必须至少包含3个字母或数字。

我尝试了什么?

我尝试使用(([aA-zZ]{0,}[0-9]{0,}){3,})\w+但是这不允许使用特殊字符,也不会让我想要3个后续字符,因为2也是允许的

那么什么是正确的,哪些是不正确的?

asdA - 正确 - 连续三次以上

as - 不正确 - 连续不到三个

a1s - 正确 - 连续三次

+ a1s / 正确 - 连续三次

+ a1-s - 不正确 - 连续少于3次

3 个答案:

答案 0 :(得分:1)

如果您需要验证3个连续的字母或数字,请使用此正则表达式:

[A-Za-z0-9]{3}

在java中使用:

str.matches(".*[A-Za-z0-9]{3}.*");

答案 1 :(得分:0)

尝试使用以下内容:

 System.out.println("asdA".matches(".*?[a-zA-Z0-9]{3}.*?"));
 System.out.println("as".matches(".*?[a-zA-Z0-9]{3}.*?"));
 System.out.println("a1s".matches(".*?[a-zA-Z0-9]{3}.*?"));
 System.out.println("+a1s/".matches(".*?[a-zA-Z0-9]{3}.*?"));
 System.out.println("+a1-s".matches(".*?[a-zA-Z0-9]{3}.*?"));

答案 2 :(得分:0)

我认为这对你有用:

{{1}}