Java基礎學習第二十五天(正規表示式)

2021-08-21 06:53:37 字數 4202 閱讀 2758

1、正規表示式使用特殊符號表示,用於操作字串的乙個規則

public class demo25.1

} system.out.println(flag ? "輸入正確" : "輸出只能是數字");

//只能輸入數字而且長度5-11位

string str2 = "12435423a2";

boolean flag2 = str2.matches("[0-9]\\d");

system.out.println(flag2?"輸入正確":"非法");

}}

預定義字元解釋.

任何字元(與行結束符可能匹配也可能不匹配)

\d數字:[0-9]

\d非數字: [^0-9]

\s空白字元:[ \t\n\x0b\f\r]

\s非空白字元:[^\s]

\w單詞字元:[a-za-z_0-9]

\w非單詞字元:[^\w]

system.out.println("a".matches(".")); //true

system.out.println("1".matches("\\d")); //true

//任何預定義字元沒有加上數量詞之前都只能匹配乙個字元

system.out.println("12".matches("\\d")); //false

system.out.println("%".matches("\\d")); //true

system.out.println("\r".matches("\\s")); //true

system.out.println("^".matches("\\s")); //true

system.out.println("a".matches("\\w")); //true

system.out.println("a".matches("\\w")); //false

數量詞

解釋x?

一次或一次也沒有

x*零次或多次

x+一次或多次

x恰好n次

x至少n次

x至少n次,但是不超過m次

system.out.println( "a".matches(".") );//true

system.out.println( "a".matches("a") );//true

system.out.println("a".matches("a?") );//true

system.out.println( "aaa".matches("a*") );//true

system.out.println( "".matches("a+") );//false

system.out.println( "aaaaa".matches("a") );//true

system.out.println( "aaaaaaaaaaa".matches("a") );//false

system.out.println( "aaa".matches("a") );//false

system.out.println( "aaaaab".matches("a") );//true

範圍

解釋[abc]

a、b 或 c(簡單類)

[^abc]

任何字元,除了 a、b 或 c(否定)

[a-za-z]

a 到 z 或 a 到 z,兩頭的字母包括在內(範圍)

//範圍詞裡面不管有多長,沒有數量詞搭配只能匹配乙個字元

system.out.println( "a".matches("[a]") );//true

system.out.println( "aa".matches("[a]+") );//true

system.out.println( "abc".matches("[abc]") );//true

system.out.println( "abc".matches("[abc]+") );//true

system.out.println( "dshfshfu1".matches("[^abc]+") );//true

system.out.println( "abcdsaa".matches("[a-z]") );//false

system.out.println( "abcdsaa12".matches("[a-za-z]") );//true

system.out.println( "abcdsaa12".matches("[a-za-z0-9]") );//true

system.out.println( "abdxyz".matches("[a-cx-z]+"));//false

system.out.println( "bcbcbc".matches("[a-zb-c]"));//true

system.out.println( "tretrt".matches("[a-z^b-c]"));//true

2、匹配:matches()

public class demo25.2

public static void matchesphone(string phone)";

system.out.println( phone.matches(reg)?"合法手機號":"非法手機號");

} public static void matchestel(string tel)-[1-9]\\d";

system.out.println( tel.matches(reg)?"合法固定**":"非法固定**");

}}

3、切割:split()

public class demo25.3

public static void testplit1()

public static void testplit2()

}

4、替換:replaceall()

public class demo25.4

public static void replacetest1()";

str=str.replaceall(reg,"*******");

system.out.println("被替換的號碼是:"+str);

} public static void replacetest2()

}

5、查詢:pattern類(正則物件)、matcher(匹配器物件)

用法:

pattern p = pattern.compile("正則");

matcher m = p.matcher("aaaaab");

boolean b = m.matches();

① 先將正規表示式編譯成正則物件,使用的是pattern類乙個靜態的方法;

② 讓正則物件和要操作的字串相關聯,通過matcher方法完成,並返回匹配器物件;

③ 通過匹配器物件的方法將正則模式作用到字串上對字串進行針對性的功能操作。

public class demo25.5

public static void getdemo()\\b";

pattern p = pattern.compile(reg);

matcher m = p.matcher(str);

while(m.find())

}}

6、校驗郵箱

public static void checkmail()";

reg = "\\w+@\\w+(\\.\\w+)+";//簡化的規則。籠統的匹配。

boolean b = mail.matches(reg);

system.out.println(mail+":"+b);

}

7、網路爬蟲(網路蜘蛛)

public class demo25.6

public static void getmailsbyweb(string regex)throws exception

} bufin.close();

} public static void getmails(string regex)throws exception

} bufr.close();

}}

第二十五天

程序 資源分配的最小單元 程序的組成 程式 資料和程序控制塊 pcb 所有的排程都是提前準備的 程序的經典三態 執行 就緒 等待 父程序的id ppid 啟動程序的使用者id uid 排程演算法 1.先來先服務 2.短程序優先 3.高優先順序優先 4.時間片輪轉法 一般都是用這個 先來先服務演算法的...

第二十五天

學會了final的相關使用方法 明天學習abstract關鍵字 一 final關鍵字 final關鍵字是最終的意思,使用final修飾類,代表該類不能被繼承。final修飾方法表示該方法不能被重寫。final修飾變數,代表該變數是常量 1 final方法 使用final修飾方法時,該方法不能被重寫,...

linuxC學習第二十五天

只說明部分 自動宣告變數,預設時編譯器預設是auto。請求編譯器盡可能的將變數存在cpu的內部暫存器中。通過這種方式可以盡可能的提高效率。要注意的是,內部暫存器有限,不能全部放入暫存器中,因此只是盡可能的存放cpu的內部暫存器中 修飾靜態變數 全域性變數,區域性變數 靜態變數存放在記憶體的資料區 1...