正則表達式功能如下:
1.大于6位
2.字母+数字
3.最少二个字母 ^(?=(?:.*?a-zA-Z]){2,})[a-zA-Z0-9]{6,}$
使用了一個正向预查(?=pattern)
和一個非获取匹配(?:pattern)但是 .*? 是何意思?請行家詳細解釋一下。。
1.大于6位
2.字母+数字
3.最少二个字母 ^(?=(?:.*?a-zA-Z]){2,})[a-zA-Z0-9]{6,}$
使用了一個正向预查(?=pattern)
和一個非获取匹配(?:pattern)但是 .*? 是何意思?請行家詳細解釋一下。。
是不是这样?^(?=(?:.*?[a-zA-Z]){2,})[a-zA-Z0-9]{6,}$ .默认匹配除了行终止符以外的任何字符
*
表示重复0次或者多次,是贪婪匹配,也就是重复次数越多越好,
而后面的那个?
让这个贪婪匹配变成了懒惰匹配,就是重复次数由越多越好变成越少越好。这个正则表达式是不是验证:
由大小写字母或者数字组成的6位的字符串,而且要求至少有两个字母挨在一起?
*?是Reluctant 数量词
/**********************/
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
Reluctant 数量词
X?? X,一次或一次也没有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超过 m 次
Possessive 数量词
X?+ X,一次或一次也没有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超过 m 次
http://www.java2000.net/doc/Java.Regex.Tutorial/Java.Regex.Tutorial.html#reg5_3