这是我的RegExp检查程序,目前无效:
String pattern = "(?=.*[0-9]{3})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]{1})(?=\\S+$).{5,15}";
以下是我无法满足的参数:
5-15个字符{5,15}
正好是3位(?=.*[0-9]{3})
字符限制和数字检查都不起作用,我出于某种原因找不到任何示例。我在哪里我错了?显然这是一个安置问题,因为我是一个新手。任何帮助,将不胜感激。其他人(至少有一个大/小写/特殊)我可以见面,但这两件简单的作品我还在苦苦挣扎。
答案 0 :(得分:1)
对于三位数检查,在正则表达式的任何位置添加此项,因为您使用正向前瞻。
(?=^([^0-9]*[0-9]){3}[^0-9]*$)
对于5-15位数的检查,请添加以下内容:
(?=^.{5,15}$)
您可以在网站https://regex101.com/上使用正则表达式,它会在右侧为您提供解释。
答案 1 :(得分:0)
[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}$