常用java正則表達(dá)式的工具類
本文實(shí)例為大家分享了java正則表達(dá)式工具類的具體代碼,供大家參考,具體內(nèi)容如下
import com.google.common.base.Strings;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 常用的正則表達(dá)式
* Created by tookbra on 2016/4/7.
*/
public class RegexUtils {
/**
* 判斷是否是正確的IP地址
*
* @param ip
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean isIp(String ip) {
if (Strings.isNullOrEmpty(ip))
return false;
String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
return ip.matches(regex);
}
/**
* 判斷是否是正確的郵箱地址
*
* @param email
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean isEmail(String email) {
if (Strings.isNullOrEmpty(email))
return false;
String regex = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
return email.matches(regex);
}
/**
* 判斷是否含有中文,僅適合中國(guó)漢字,不包括標(biāo)點(diǎn)
* @param text
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean isChinese(String text) {
if (Strings.isNullOrEmpty(text))
return false;
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher m = p.matcher(text);
return m.find();
}
/**
* 判斷是否正整數(shù)
*
* @param number
* 數(shù)字
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean isNumber(String number) {
if (Strings.isNullOrEmpty(number))
return false;
String regex = "[0-9]*";
return number.matches(regex);
}
/**
* 判斷幾位小數(shù)(正數(shù))
*
* @param decimal
* 數(shù)字
* @param count
* 小數(shù)位數(shù)
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean isDecimal(String decimal, int count) {
if (Strings.isNullOrEmpty(decimal))
return false;
String regex = "^(-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){" + count
+ "})?$";
return decimal.matches(regex);
}
/**
* 判斷是否是移動(dòng)手機(jī)號(hào)碼
*
* @param phoneNumber
* 移動(dòng)手機(jī)號(hào)碼
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean isMobilePhoneNumber(String phoneNumber) {
if (Strings.isNullOrEmpty(phoneNumber))
return false;
String regex = "^((13[0-9])|(15[0-9])|(18[1-9]))\\d{8}$";
return phoneNumber.matches(regex);
}
/**
* 判斷是否是手機(jī)號(hào)碼
*
* @param phoneNumber
* 移動(dòng)手機(jī)號(hào)碼
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean isPhoneNumber(String phoneNumber) {
if (Strings.isNullOrEmpty(phoneNumber))
return false;
String regex = "^1\\d{10}$";
return phoneNumber.matches(regex);
}
/**
* 判斷是否含有特殊字符
*
* @param text
* @return boolean true,通過(guò),false,沒(méi)通過(guò)
*/
public static boolean hasSpecialChar(String text) {
if (Strings.isNullOrEmpty(text))
return false;
if (text.replaceAll("[a-z]*[A-Z]*\\d*-*_*\\s*", "").length() == 0) {
// 如果不包含特殊字符
return true;
}
return false;
}
private static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
return true;
}
return false;
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 深入淺析Java常用的格式化Json工具類
- Java常用工具類庫(kù)——Hutool的使用簡(jiǎn)介
- Java常用工具類匯總 附示例代碼
- Java常用類庫(kù)Apache Commons工具類說(shuō)明及使用實(shí)例詳解
- java常用工具類 Reflect反射工具類、String字符串工具類
- java常用工具類 Date日期、Mail郵件工具類
- java常用工具類 UUID、Map工具類
- java常用工具類 Random隨機(jī)數(shù)、MD5加密工具類
- java常用工具類 數(shù)字工具類
- java常用工具類 XML工具類、數(shù)據(jù)驗(yàn)證工具類
- java常用工具類 IP、File文件工具類
- 詳解Java常用工具類—泛型
- Java常用工具類—集合排序
- java處理字節(jié)的常用工具類
- java自定義封裝StringUtils常用工具類
- Java語(yǔ)言Lang包下常用的工具類介紹
- Java_int、double型數(shù)組常用操作工具類(分享)
- Java常用工具類總結(jié)
相關(guān)文章
Java微信公眾號(hào)開發(fā)之通過(guò)微信公眾號(hào)獲取用戶信息
這篇文章主要介紹了Java微信公眾號(hào)開發(fā)之通過(guò)微信公眾號(hào)獲取用戶信息,需要的朋友可以參考下2017-05-05
Java設(shè)計(jì)模式中的代理設(shè)計(jì)模式詳細(xì)解析
這篇文章主要介紹了Java設(shè)計(jì)模式中的代理設(shè)計(jì)模式詳細(xì)解析,代理模式,重要的在于代理二字,何為代理,我們可以聯(lián)想到生活中的例子,比如秘書、中介這類職業(yè),我們可以委托中介去幫我們完成某些事情,而我們自己只需要關(guān)注我們必須完成的事情,需要的朋友可以參考下2023-12-12
Java使用Callable和Future創(chuàng)建線程操作示例
這篇文章主要介紹了Java使用Callable和Future創(chuàng)建線程操作,結(jié)合實(shí)例形式分析了java使用Callable接口和Future類創(chuàng)建線程的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-09-09
SpringMVC4.3?HttpMessageConverter接口實(shí)現(xiàn)源碼分析
這篇文章主要為大家介紹了SpringMVC4.3?HttpMessageConverter接口實(shí)現(xiàn)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Jpa數(shù)據(jù)操作以及@Query和@Modifying注解使用方式
這篇文章主要介紹了Jpa數(shù)據(jù)操作以及@Query和@Modifying注解使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Java之獲取客戶端真實(shí)IP地址的實(shí)現(xiàn)
在開發(fā)工作中,我們常常需要獲取客戶端的IP,本文主要介紹了Jav之獲取客戶端真實(shí)IP地址的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12

