Java 特定长度/数字计数的RegExp密码检查器
这是我的RegExp检查器,目前无法使用:Java 特定长度/数字计数的RegExp密码检查器,java,regex,Java,Regex,这是我的RegExp检查器,目前无法使用: String pattern = "(?=.*[0-9]{3})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]{1})(?=\\S+$).{5,15}"; 以下是我无法满足的参数: 5-15个字符{5,15} 正好有3位数字(?=.[0-9]{3}) 字符限制和数字检查都不起作用,出于某种原因,我找不到任何示例。我错在哪里?很明显,这是一个安置问题,因为我完全是个新手。任何帮助都将不胜感激。其他的(至少一个大写/小
String pattern = "(?=.*[0-9]{3})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]{1})(?=\\S+$).{5,15}";
以下是我无法满足的参数:
5-15个字符{5,15}
正好有3位数字(?=.[0-9]{3})
字符限制和数字检查都不起作用,出于某种原因,我找不到任何示例。我错在哪里?很明显,这是一个安置问题,因为我完全是个新手。任何帮助都将不胜感激。其他的(至少一个大写/小写/特殊)我可以遇到,但这两个简单的部分我仍然在努力解决。对于三位数检查,在使用正向前瞻时,将其添加到正则表达式的任意位置
(?=^([^0-9]*[0-9]){3}[^0-9]*$)
对于5-15位数的检查,添加此项:
(?=^.{5,15}$)
你可以在网站上使用正则表达式,它会在右边给出解释。
[0-9]{3}
是3个连续整数。要允许字符串中的某个地方有三个整数,需要检查每个整数部分
(?=^[^0-9]*[0-9][^0-9]*[0-9][^0-9]*[0-9][^0-9]*$)
{5,15}
是5到15个字符,但这是字符串中的任意位置,以使其影响需要锚定的整个字符串。因此,您的完整表达应该是:
^(?=^[^0-9]*[0-9][^0-9]*[0-9][^0-9]*[0-9][^0-9]*$)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]{1})(?=\\S+$).{5,15}$
演示:密码模式是什么?在我们尝试修复你的正则表达式之前,我们需要知道这一点。你可能还想在网上试试正则表达式和输入字符串。我只是问一下文章中的部分,5-15个字符,正好是3个数字。模式的其余部分无关紧要,因为代码的这些部分工作正常。总共3个整数,连续的都无关紧要。我“认为”我把它们设置为贪婪的,所以连续的整数不重要?由于整数检查,asAS$5432应该会失败,但不会。哦!那么我该如何改变它呢?我要把它搬到哪里去?这是我问题的症结所在,位置。非常感谢。我如何锚定它?将
更改为,
?我为这些简单的问题道歉,但我对谷歌很糟糕,找不到例子非常感谢,非常感谢您的时间哦,将[^0-9]*[0-9]
分组更干净。非常感谢您的网站!你和克里斯回答了我的问题,谢谢你抽出时间。