整理一些常見的正則表達式(附可視化鏈接)
image
數字相關
public static final String P_N_1 = "^[0-9]*$";// 數字
public static final String P_N_2 = "^\\d{3}$";// 3為數字
public static final String P_N_3 = "^\\d{3,}$";// 至少3位數字
public static final String P_N_4 = "^\\d{3,5}$";// M之N位數字
public static final String P_N_6 = "^-?[1-9]\\d*$";// 整數
public static final String P_N_7 = "^[1-9]\\d*$";// 正整數
public static final String P_N_8 = "^-[1-9]\\d*$";// 負整數
字符串相關
public static final String P_S_0 = "[\\u4e00-\\u9fa5]";// 中文
public static final String P_S_1 = "^.{3,20}$";// 長度為M至N的所有字符
public static final String P_S_2 = "^[A-Za-z]+$";// 純英文字母
public static final String P_S_3 = "^[A-Z]+$";// 純大寫英文字母
public static final String P_S_4 = "^[a-z]+$";// 純小寫英文字母
public static final String P_S_5 = "^[A-Za-z0-9]+$";// 數字和英文字母
public static final String P_S_6 = "^[\\u4E00-\\u9FA5A-Za-z0-9_]+$";// 中文、英文、數字或下劃線
public static final String P_S_7 = "^\\\\w+$";// 中文、英文、數字或下劃線
public static final String P_S_8 = "^[\\u4E00-\\u9FA5A-Za-z0-9]{2,20}$";// 中文、英文、數字[不包括下劃線]
public static final String P_S_9 = "^(f|ht){1}(tp|tps):\\\\/\\\\/([\\\\w-]+\\\\.)+[\\\\w-]+(\\\\/[\\\\w- ./?%&=]*)?";// 賽選字符串中的URL
密碼相關
public static final String P_P_0 = "^(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$";// 密碼強度
public static final String P_P_1 = "^[A-Za-z0-9]+$";// 英文&數字
public static final String P_P_2 = "^[A-Za-z0-9]{4,40}$";// 英文&數字
public static final String P_P_3 = "^\\w+$ 或 ^\\w{3,20}$";// 數字、英文字母或下劃線
public static final String P_P_4 = "^[a-zA-Z]\\w{5,17}$";// 密碼【以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線】
public static final String P_P_5 = "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$";// 強密碼【必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間】
時間相關
public static final String P_T_0 = "^\\d{4}-\\d{1,2}-\\d{1,2}";// 日期格式
public static final String P_T_1 =
"^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$\n";//校驗日期 【“yyyy-mm-dd“ 格式的日期校驗,已考慮平閏年。】
其他
public static final String P_O_1 = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";// Email
public static final String P_O_2 = "[\\\\w!#$%&'*+/=?^_`{|}~-]+(?:\\\\.[\\\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\\\w](?:[\\\\w-]*[\\\\w])?\\\\.)+[\\\\w](?:[\\\\w-]*[\\\\w])?";// Email
public static final String P_O_3 = "[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?";// 域名
public static final String P_O_4 = "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$";// 手機號碼
public static final String P_O_5 = "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\\\d{8}$";// 手機號碼
public static final String P_O_6 = "^\\d{15}|\\d{18}$";// 身份證號
public static final String P_O_7 = "^[1-9]\\\\d{7}((0\\\\d)|(1[0-2]))(([0|1|2]\\\\d)|3[0-1])\\\\d{3}$";// 15位身份證號
public static final String P_O_8 = "^[1-9]\\\\d{5}[1-9]\\\\d{3}((0\\\\d)|(1[0-2]))(([0|1|2]\\\\d)|3[0-1])\\\\d{3}([0-9]|X)$";// 18位身份證號
public static final String P_0_9 = "^[0-9]+(.[0-9]{2})?$";// 金額校驗,精確到2位小數
public static final String P_0_10 = "\\\\< *[img][^=XXFN}*[src] *= *[\\\\\"\\\\']{0,1}({FNXX=]*)";// 獲取網頁中的圖片信息
public static final String P_0_11 = "[1-9][0-9]\\{4,\\}";// QQ號
判斷是否匹配正則
判定規則
待判定字符串
public static boolean isMatch(String regex, CharSequence str) {
return str != null && str.length() > 0 && Pattern.matches(regex, str);
}