android 正则表达式3,含有至少3个字符类型的android正则表达式

我想在包含至少3个类型的字符从这种类型的android正则表达式:含有至少3个字符类型的android正则表达式

Number, upper letter, lower letter and special characters,

,我发现这个表达式

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[[email protected]$!%*?&])[A-Za-z\[email protected]$!%*?&]{8,100}

但这告诉最小8和最大10个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符。 但我需要这4种类型的3种类型,不是全部4种类型。

例如这个口令是有效的:

Test1987(因为它包含3类型=上字符,下,和数字) & est7sss(有效太它包含特殊字符,数字,和下字符)

密码无效:

test1987(仅包含两个类型的下限和数字)

我如何能做到这一点,请

-----------------编辑-------------

我用这样的fonction,它似乎工作

public boolean validatePassword(final String password){

Integer numberType = 0;

if(password.length() > 7){

if (password.matches(".*\\d.*")) {

numberType = numberType + 1;

}

if (password.matches(".*[a-z].*")) {

numberType = numberType + 1;

}

if (password.matches(".*[A-Z].*")) {

numberType = numberType + 1;

}

if (!password.matches("[A-Za-z0-9 ]*")) {

numberType = numberType + 1;

}

}

else{

return false;

}

if(numberType>2)

return true;

return false;

}

+0

我想问清问题,并尝试成为更具体的了解你正在谈论哪些类型? –

+0

我只是用例子来编辑我的问题,你能不能读一下,告诉我它是否更清楚? –

+1

纯粹的正则表达式解决方案将是丑陋的。最好在代码中处理这个问题。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值