正则表达式简单语法及常用正则表达式
基本符号:
^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)
$ 表示匹配字符串的结束位置
* 表示匹配 零次到多次
+ 表示匹配 一次到多次 (至少有一次)
? 表示匹配零次或一次
!表示排除
. 表示匹配单个字符
| 表示为或者,两项中取一项
( ) 小括号表示匹配括号中全部字符
[ ] 中括号表示匹配括号中一个字符 范围描述 如[0-9 a-z A-Z]
{ } 大括号用于限定匹配次数 如 {n}表示匹配n个字符 {n,}表示至少匹配n个字符 {n,m}表示至少n,最多m
\ 转义字符 如上基本符号匹配都需要转义字符 如 \* 表示匹配*号
\w 表示英文字母和数字和下划线 \W 非字母和数字和下划线
\d 表示数字 \D 非数字
需要注意的是:\w代表字母数字和下划线 \W 并不包含下划线
也就是说:
0-9 : 代表数字
A-Z : 代表大写字母
a-z : 代表小写字母
_ : 代表下划线
\W : 其他符号
// 例如:必须包含大写字母,小写字母,数字,以及符号(包含下划线)
str="^(?![A-Za-z0-9]+$)(?![a-z0-9_\\W]+$)(?![A-Za-z_\\W]+$)(?![A-Z0-9_\\W]+$)(?![A-Z0-9\\W]+$)[\\w\\W]{8,}$";
// 表达式的含义就是指 在满足 [\\w\\W]{8,} 的情况下(可以匹配到字母数字下划线符号)的情况下
// 排除 (?![A-Za-z0-9]+$) 只有字母数字的情况
// 排除 (?![a-z0-9_\\W]+$) 没有大写字母的情况
// 排除 (?![A-Za-z_\\W]+$) 没有数字的情况
// 排除 (?![A-Z0-9_\\W]+$) 没有小写字母的情况
String pw1 = "ABCDEFGHIG";
String pw2 = "abcdefghig";
String pw3 = "0123456789";
String pw4 = "!@#$%^&*()";
String pw5 = "ABCDEabcde";
String pw6 = "ABCDE01234";
String pw7 = "ABCDE!@#$%";
String pw8 = "abcde01234";
String pw9 = "abcde!@#$%";
String pw10 = "01234!@#$%";
String pw11 = "abcde01234!@#$%";
String pw12 = "ABCDE01234!@#$%";
String pw13 = "Aa0!";
String pw14="`~!@#$%^&*()_+-=,./;:'\\|\"[]{}1q";
String pw15 = "ABCD_Eabcde!@#$%";
//符合要求密码
String pw16 = "ABCD_Eabcde01234";
String pw17="ABC_abc012!@#";
String pw18="cumt_Admin!@#123";
String pw19="A0000_aaaa!@#";
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN));
((PW_PATTERN)); // true
((PW_PATTERN)); // true
((PW_PATTERN)); // true
((PW_PATTERN)); // true
// 在例如:必须包含大写字母,小写字母,数字或者符号(包含下划线)
str="^(?![A-Za-z]+$)(?![A-Z0-9_\\W]+$)(?![a-z0-9_\\W]+$)[\\w\\W]{8,}$";
//道理同上