回顧之前學習的類庫相關知識,我們已經對其基本概念與簡單使用有了一個較為全面的了解,現在讓我們一起來結合具體的一些案例鞏固一下正規表達式的相關内容吧。
【本節目标】
通過閱讀本節内容,你将結合相關案例場景進行功能實作,複習正規表達式,使用Matcher類和Pattern類,實作電子郵箱、IP位址的識别和HTML檔案的解析,進一步了解與掌握其使用方法。
Email驗證
類庫案例分析四
輸入一個Email位址,然後使用正規表達式驗證Email位址格式是否正确。
對于此時的輸入可以通過指令參數實作資料的輸入,如果要想進行驗證,最好的做法是設定一個單獨的驗證處理類。
public class JavaAPIDemo {
public static void main(String[] args){
if (args.length != 1) { //輸入有一個參數
System.out.println("程式執行錯誤,沒有輸入初始化參數,正确格式為:java JavaAPIDemo EMAIL位址") ;
System.exit(1) ; //系統退出
}
String email = args[0] ; //擷取初始化參數
if (Validator.isEmail(email)) {
System.out.println("輸入的email位址正确!") ;
}else{
System.out.println("輸入的email位址錯誤!") ;
}
}
}
class Validator { //定義一個專門的驗證程式類
private Validator() {}
public static boolean isEmail(String email) {
if (email == null || "".equals(email)) { //資料為空
return false ;
}
String regex = "\\w+@\\w+\\.\\w+" ;
return email.matches(regex) ;
}
}
如果以後要有更多的驗證,隻需要在Validator類之中擴充方法即可。
IP驗證
類庫案例分析五
編寫正規表達式,判斷給定的是否是一個合法的IP位址。
IP位址的組成就是數字,對于數字的組成有一個基礎的要求,第一位的内容隻能是無、1、2,後面的内容可以0-9、第三位的内容是0-9。
public class JavaApiDemo {
public static void main(String[] args) throws Exception {
String str="192.168.1.2";
System.out.println(Validator.validateIP(str));
}
}
class Validator {
public static boolean validateIP(String ip) {
if(ip == null || "".equals(ip)) {
return false;
}
String regex = "([12]?[0-9]?[0-9]\\.){3}([12]?[0-9]?[0-9])";
if(ip.matches(regex)) { // 驗證通過,還需要對IP位址進行拆分處理
String result [] = ip.split("\\."); // 拆分資料
for (int i = 0; i < result.length; i ++) {
int temp = Integer.parseInt(result[i]);
if(temp > 255) {
return false;
}
}
} else {
return false;
}
return true;
}
}
運作結果:
true
HTML拆分
類庫案例分析六
給定下面的Html代碼:
<font face="Arial,Serif" size="+2" color="red">
要對内容進行拆分,拆分之後的結果是:
faceArial,Serif
size+2
colorred
對于測試的操作最簡單的做法是分組處理
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class JavaApiDemo {
public static void main(String[] args) throws Exception {
String str = "<font face=\"Arial,Serif\" size=\"+2\" color=\"red\">";
String regex = "\\w+=\"[a-zA-Z0-9,\\+]+\"";
Matcher matcher = Pattern.compile(regex).matcher(str);
while(matcher.find()) {
String temp = matcher.group(0);
String result [] = temp.split("=");
System.out.println(result[0] + "\t" + result[1].replaceAll("\"", ""));
}
}
}
face Arial,Serif
size +2
color red
這是一個很常見的HTML解析流程。
想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。
本内容視訊來源于
阿裡雲大學 下一篇:使用案例回顧類庫相關知識(下) | 帶你學《Java語言進階特性》之四十五 更多Java面向對象程式設計文章檢視此處