您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“RegexUtils怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“RegexUtils怎么使用”吧!
正則相關(guān)→RegexUtils.java→Test
isMobileSimple : 驗(yàn)證手機(jī)號(hào)(簡(jiǎn)單) isMobileExact : 驗(yàn)證手機(jī)號(hào)(精確) isTel : 驗(yàn)證電話號(hào)碼 isIDCard15 : 驗(yàn)證身份證號(hào)碼15位 isIDCard18 : 驗(yàn)證身份證號(hào)碼18位 isEmail : 驗(yàn)證郵箱 isURL : 驗(yàn)證URL isZh : 驗(yàn)證漢字 isUsername : 驗(yàn)證用戶名 isDate : 驗(yàn)證yyyy-MM-dd格式的日期校驗(yàn),已考慮平閏年 isIP : 驗(yàn)證IP地址 isMatch : 判斷是否匹配正則 getMatches : 獲取正則匹配的部分 getSplits : 獲取正則匹配分組 getReplaceFirst : 替換正則匹配的第一部分 getReplaceAll : 替換所有正則匹配的部分
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static com.blankj.utilcode.utils.ConstUtils.*;
/**
* * author: Blankj
* blog : http://blankj.com
* time : 2016/8/2
* desc : 正則相關(guān)工具類
*
*/
public class RegexUtils {
private RegexUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
/**
* If u want more please visit http://toutiao.com/i6231678548520731137/
*/
/**
* 驗(yàn)證手機(jī)號(hào)(簡(jiǎn)單)
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isMobileSimple(CharSequence input) {
return isMatch(REGEX_MOBILE_SIMPLE, input);
}
/**
* 驗(yàn)證手機(jī)號(hào)(精確)
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isMobileExact(CharSequence input) {
return isMatch(REGEX_MOBILE_EXACT, input);
}
/**
* 驗(yàn)證電話號(hào)碼
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isTel(CharSequence input) {
return isMatch(REGEX_TEL, input);
}
/**
* 驗(yàn)證身份證號(hào)碼15位
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isIDCard15(CharSequence input) {
return isMatch(REGEX_ID_CARD15, input);
}
/**
* 驗(yàn)證身份證號(hào)碼18位
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isIDCard18(CharSequence input) {
return isMatch(REGEX_ID_CARD18, input);
}
/**
* 驗(yàn)證郵箱
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isEmail(CharSequence input) {
return isMatch(REGEX_EMAIL, input);
}
/**
* 驗(yàn)證URL
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isURL(CharSequence input) {
return isMatch(REGEX_URL, input);
}
/**
* 驗(yàn)證漢字
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isZh(CharSequence input) {
return isMatch(REGEX_ZH, input);
}
/**
* 驗(yàn)證用戶名
*取值范圍為a-z,A-Z,0-9,"_",漢字,不能以"_"結(jié)尾,用戶名必須是6-20位
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isUsername(CharSequence input) {
return isMatch(REGEX_USERNAME, input);
}
/**
* 驗(yàn)證yyyy-MM-dd格式的日期校驗(yàn),已考慮平閏年
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isDate(CharSequence input) {
return isMatch(REGEX_DATE, input);
}
/**
* 驗(yàn)證IP地址
*
* @param input 待驗(yàn)證文本
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isIP(CharSequence input) {
return isMatch(REGEX_IP, input);
}
/**
* 判斷是否匹配正則
*
* @param regex 正則表達(dá)式
* @param input 要匹配的字符串
* @return {@code true}: 匹配
{@code false}: 不匹配
*/
public static boolean isMatch(String regex, CharSequence input) {
return input != null && input.length() > 0 && Pattern.matches(regex, input);
}
/**
* 獲取正則匹配的部分
*
* @param regex 正則表達(dá)式
* @param input 要匹配的字符串
* @return 正則匹配的部分
*/
public static ListgetMatches(String regex, CharSequence input) {
if (input == null) return null;
Listmatches = new ArrayList<>();
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
matches.add(matcher.group());
}
return matches;
}
/**
* 獲取正則匹配分組
*
* @param input 要分組的字符串
* @param regex 正則表達(dá)式
* @return 正則匹配分組
*/
public static String[] getSplits(String input, String regex) {
if (input == null) return null;
return input.split(regex);
}
/**
* 替換正則匹配的第一部分
*
* @param input 要替換的字符串
* @param regex 正則表達(dá)式
* @param replacement 代替者
* @return 替換正則匹配的第一部分
*/
public static String getReplaceFirst(String input, String regex, String replacement) {
if (input == null) return null;
return Pattern.compile(regex).matcher(input).replaceFirst(replacement);
}
/**
* 替換所有正則匹配的部分
*
* @param input 要替換的字符串
* @param regex 正則表達(dá)式
* @param replacement 代替者
* @return 替換所有正則匹配的部分
*/
public static String getReplaceAll(String input, String regex, String replacement) {
if (input == null) return null;
return Pattern.compile(regex).matcher(input).replaceAll(replacement);
}
}
相信乘客們都沒(méi)有見(jiàn)到相應(yīng)的正則表達(dá)式,因?yàn)槲易隽?code>import static com.blankj.utilcode.utils.ConstUtils.*;,相關(guān)常量都在這個(gè)常量工具類里,下面貼出相關(guān)代碼。
/******************** 正則相關(guān)常量 ********************/ /** * 正則:手機(jī)號(hào)(簡(jiǎn)單) */ public static final String REGEX_MOBILE_SIMPLE = "^[1]\\d{10}$"; /** * 正則:手機(jī)號(hào)(精確) *移動(dòng):134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188*聯(lián)通:130、131、132、145、155、156、175、176、185、186*電信:133、153、173、177、180、181、189*全球星:1349*虛擬運(yùn)營(yíng)商:170*/ public static final String REGEX_MOBILE_EXACT = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|(147))\\d{8}$"; /** * 正則:電話號(hào)碼 */ public static final String REGEX_TEL = "^0\\d{2,3}[- ]?\\d{7,8}"; /** * 正則:身份證號(hào)碼15位 */ public static final String REGEX_ID_CARD15 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$"; /** * 正則:身份證號(hào)碼18位 */ public static final String REGEX_ID_CARD18 = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9Xx])$"; /** * 正則:郵箱 */ public static final String REGEX_EMAIL = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"; /** * 正則:URL */ public static final String REGEX_URL = "[a-zA-z]+://[^\\s]*"; /** * 正則:漢字 */ public static final String REGEX_ZH = "^[\\u4e00-\\u9fa5]+$"; /** * 正則:用戶名,取值范圍為a-z,A-Z,0-9,"_",漢字,不能以"_"結(jié)尾,用戶名必須是6-20位 */ public static final String REGEX_USERNAME = "^[\\w\\u4e00-\\u9fa5]{6,20}(?
到此,相信大家對(duì)“RegexUtils怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。