正在回答
3回答
同学你好,(?=正则表达式)是前瞻匹配,实际匹配的是它所修饰的内容,而不是它本身,如下:
该例子中,匹配的是字符”java”,但并不是所有“java”都能被匹配,只有后面是“script”的“java”才能被匹配到。对应我们这个正则,需要匹配的是[0-9A-Za-z]{6,10},条件是三个括号中的内容。
具体含义如下:
三个括号:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]) 是条件,其中:(?=.*[A-Z])的意思是匹配的字符串需要包含”.*”和A-Z;(?=.*[a-z])意思是匹配的字符需要包含”.*”和a-z;(?=.*[0-9])意思是匹配的字符需要包含”.*”和0-9;而”.*”意思是除了换行符之外的所有字符0个到多个。
这三个括号都是修饰”[0-9A-Za-z]{6,10}”这句正则,最终匹配的也是这句正则,并且这句正则还需要满足三个括号中的条件。由于”[0-9A-Za-z]{6,10}”中限制了字符种类是数字、大写字母或者小写字母,所以三个条件中的”.*”中的*就只能是0次,所以第一个括号就变成了需要包含大写字母,第二个括号变成了需要包含小写字母,第三个括号变成了需要包含数字。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星