-------
android培訓、java培訓、期待與您交流!
----------
Regex:其實是用來操作字串的一些規則。
好處:正則的出現,對字串的複雜操作變得更為簡單。
特點:將對字串操作的代碼用一些符號來表示。只要使用了指定符號,就可以調用底層的代碼對字串進行操作。符號的出現,簡化了代碼的書寫。
弊端:符號的出現雖然簡化了書寫,但是卻降低了閱讀性。
其實更多是用正則解決字串操作的問題。
組:用小括弧標示,每定義一個小括弧,就是一個組,而且有自動編號,從1開始。
只要使用組,對應的數字就是使用該組的內容。別忘了,數組要加\\。
(aaa(wwww(ccc))(eee))技巧,從左括弧開始數即可。有幾個左括弧就是幾組。
常見操作:
1,匹配:其實用的就是String類中的matches方法。
String reg = "[1-9][0-9]{4,14}";
boolean b = qq.matches(reg);//將正則和字串關聯對字串進行匹配。
2,切割:其實用的就是String類中的split方法。
3,替換:其實用的就是String類中的replaceAll();
4,擷取:
1),先要將Regex編譯成正則對象。使用的是Pattern中靜態方法 compile(regex);
2),通過Pattern對象擷取Matcher對象。
Pattern用於描述Regex,可以對Regex進行解析。
而將規則操作字串,需要從新封裝到匹配器對象Matcher中。
然後使用Matcher對象的方法來操作字串。
如何擷取匹配器對象呢?
通過Pattern對象中的matcher方法。該方法可以正則規則和字串想關聯。並返回匹配器對象。
3),使用Matcher對象中的方法即可對字串進行各種正則操作。
下面是關於Regex的java例子:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class CheckMobileAndEmail { /** * 驗證郵箱地址是否正確 * @param email * @return */ public static boolean checkEmail(String email){ boolean flag = false; try{ String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(email); flag = matcher.matches(); }catch(Exception e){ flag = false; } return flag; } /** * 驗證手機號碼 * @param mobiles * @return [0-9]{5,9} */ public static boolean isMobileNO(String mobiles){ boolean flag = false; try{ Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"); Matcher m = p.matcher(mobiles); flag = m.matches(); }catch(Exception e){ flag = false; } return flag; } public static boolean isNum(String number){ boolean flag = false; try{ Pattern p = Pattern.compile("^[0-9]{5}$"); Matcher m = p.matcher(number); flag = m.matches(); }catch(Exception e){ flag = false; } return flag; } }