复制代码
1
2
3
4
5
6
7
8
9/** * 判断字符串中是否包含字母和数字,并大于8位 * @param str * @return */ private boolean isContainLetterAndNum(String str) { String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$"; return str.matches(regex); }
解释一下正则:
想要的结果是 包含数字和字母,并大于8位
不能全部是数字
不能全部是字母
必须是数字和字母
复制代码
1^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$
注释:
^ 匹配一行的开头位置
括号的含义
()表示捕获分组,()会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容)
(?![0-9]+$) 该位置后面不全是数字
(?![a-zA-Z]+$) 该位置后面不全是字母
[0-9A-Za-z] {8,} 由大于8位数字或字母组成
$ 匹配行结尾位置
注:?! 解释:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。
(?!exp)为零宽断言,表示断言之后的内容不能是exp,[^a-zA-Z]表示非英文字母,+表示可以有多个,$匹配结尾.也就是可以理解为非的意思
最后
以上就是稳重鸡翅最近收集整理的关于判断字符串中包含字母和数字的全部内容,更多相关判断字符串中包含字母和数字内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复