求一正则表达式,要求如下:
1)至少包含一个数字和字母
2)不能全部为数字和字母
3)除数字和字母外可以包含其他字符
4)长度6~10位
如: 合法:1234abc!@#
abc!@#123
a!@#12#3
123abc#@!a 等
不合法: 123456
abcde
123!@#
abc!@#
1)至少包含一个数字和字母
2)不能全部为数字和字母
3)除数字和字母外可以包含其他字符
4)长度6~10位
如: 合法:1234abc!@#
abc!@#123
a!@#12#3
123abc#@!a 等
不合法: 123456
abcde
123!@#
abc!@#
解决方案 »
- Java中关于 final 和 static 对变量的作用
- java -verbose from shared objects file
- 帮初学者看个小程序,谢谢热心人
- 有没有人在研究用中文编写程序的啊?有这个必要吗?
- 控件数组的问题
- Invalid path, \bin\javac.exe -classpath
- 拷贝文件
- 小弟是JAVA新手!耽误大家半分钟提个基础问题!!谢谢大哥们
- j2sdk-1_4_2-beta-solaris-sparc.sh 安装,运行java 出错
- 高分求救:java显示blob图象
- 提问,紧急提问~~~
- 百度Hi 发放激活邀请函 需要的朋友留邮箱或者百度空间的ID
abc!@#不明白,这两个为什么不合法?
是什么意思,一定要有符号吗?
asdf456 合法不?
regex = "[.&&[^0-9]]{6,10}|[.&&[^a-zA-Z]]{6,10}";
符合以上pattern的都不合法 否则就合法
String[] strs = {"1234abc!@#", "abc!@#123", "a!@#12#3", "123abc#@!a",
"123456", "abcde", "123!@#", "abc!@#", "123456a"};
String regex = "(?=.*[^0-9a-z].*)(?=.*[0-9].*)(?=.*[a-z].*).{6,10}";
for(String s : strs) {
System.out.println(s + " " + s.matches(regex));
}
}
}
那123456a asdf456 应该是合法的
(?=.*[^0-9a-z].*)(?=.*[0-9].*)(?=.*[a-z].*).{6,10}
初学者,不好意思我也觉得123456a asdf456 应该是合法的
加个问号
(?=.*[^0-9a-z]?.*)(?=.*[0-9].*)(?=.*[a-z].*).{6,10}
如:123456a asdf456 之类的是合法的信息
此问题后来已经自己搞定了,谢谢各位