Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 特定长度/数字计数的RegExp密码检查器_Java_Regex - Fatal编程技术网

Java 特定长度/数字计数的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}) 字符限制和数字检查都不起作用,出于某种原因,我找不到任何示例。我错在哪里?很明显,这是一个安置问题,因为我完全是个新手。任何帮助都将不胜感激。其他的(至少一个大写/小

这是我的RegExp检查器,目前无法使用:

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]
分组更干净。非常感谢您的网站!你和克里斯回答了我的问题,谢谢你抽出时间。