最近在項目中遇到比較多需要校驗的字符串,由於以前沒怎麼用過,導致使用不太熟練。在這裏將常用的正則表達式總結一下,方便日後使用,也供大家參考。
public class TestReg {
public static void main(String[] args) {
while(true) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
if("exit".equals(str)) {
break;
}
// validateUrl()爲需要測試的函數,可替換
System.out.println(validateUrl(str));
}
}
// 驗證是否爲全爲數字
public static boolean validateDigit(String str){
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
// 驗證是否全爲字母,不含特殊字符
public static boolean validateCharacters(String str){
Pattern pattern = Pattern.compile("^[a-zA-Z]*$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
// 驗證是否爲自然數
public static boolean validateNatural(String str){
Pattern pattern = Pattern.compile("^[+]?[\\d]*$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
// 驗證是否爲正整數
public static boolean validatePlus(String str){
Pattern pattern = Pattern.compile("^[+]?[1-9]*$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
// 驗證郵箱
public static boolean validateEmail(String str){
Pattern pattern = Pattern.compile("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
// 驗證手機號碼
public static boolean validatePhoneNum(String str){
Pattern pattern = Pattern.compile("^1[3|4|5|7|8]\\d{9}$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
// 驗證座機號碼
public static boolean validateFixPhone(String str){
Pattern pattern = Pattern.compile("^(0[0-9]{2,3}\\-)?([2-9][0-9]{6,7})$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
// 驗證網址
public static boolean validateUrl(String str){
Pattern pattern = Pattern.compile("^((ht|f)tps?):\\/\\/[\\w\\-]+(\\.[\\w\\-]+)+([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
}
如果發現有不對的地方,還望各位大神指正,不勝感激。