正则表达式简单语法及常用正则表达式

基本符号:

^  表示匹配字符串的开始位置  (例外  用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)

$  表示匹配字符串的结束位置

*  表示匹配 零次到多次

+  表示匹配 一次到多次 (至少有一次)

?  表示匹配零次或一次

!表示排除

.  表示匹配单个字符 

|  表示为或者,两项中取一项

(  ) 小括号表示匹配括号中全部字符

[  ] 中括号表示匹配括号中一个字符 范围描述 如[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!@#";

        System.out.println(pw1.matches(PW_PATTERN));
        System.out.println(pw2.matches(PW_PATTERN));
        System.out.println(pw3.matches(PW_PATTERN));
        System.out.println(pw4.matches(PW_PATTERN));
        System.out.println(pw5.matches(PW_PATTERN));
        System.out.println(pw6.matches(PW_PATTERN));
        System.out.println(pw7.matches(PW_PATTERN));
        System.out.println(pw8.matches(PW_PATTERN));
        System.out.println(pw9.matches(PW_PATTERN));
        System.out.println(pw10.matches(PW_PATTERN));
        System.out.println(pw11.matches(PW_PATTERN));
        System.out.println(pw12.matches(PW_PATTERN));
        System.out.println(pw13.matches(PW_PATTERN));
        System.out.println(pw14.matches(PW_PATTERN));
        System.out.println(pw15.matches(PW_PATTERN));
        System.out.println(pw16.matches(PW_PATTERN));  // true
        System.out.println(pw17.matches(PW_PATTERN));  // true
        System.out.println(pw18.matches(PW_PATTERN));  // true
        System.out.println(pw19.matches(PW_PATTERN));  // true



// 在例如:必须包含大写字母,小写字母,数字或者符号(包含下划线)
str="^(?![A-Za-z]+$)(?![A-Z0-9_\\W]+$)(?![a-z0-9_\\W]+$)[\\w\\W]{8,}$";
//道理同上