黑馬程式設計師 正規表示式學習筆記

2021-06-14 20:40:55 字數 3190 閱讀 5540

---------------------- asp.net+android+io">"target="blank">asp.net+android+io開發s、.net">"target="blank">.net培訓、期待與您交流! ----------------------

正規表示式:符合一定規則的表示式。

作用:用於專門操作字串。

特點:用於一些特定的符號來表示一些**操作。這樣就簡化書寫。

所以學習正規表示式,就是在學習一些特殊符號的使用。

具體操作功能:

1、匹配:string  matches方法。用規則匹配整個字串,只要有一處不符合規則,就匹配結束,返回false。

1)手機號碼校驗

string tel = "13900001111";

string telreg = "1[358]\\d";

tel.matches(telreg);

2)郵箱位址校驗

string mail = "[email protected]";

string reg1 = "[a-za-z0-9_]+@[a-za-z0-9]+(較為精確的匹配。

reg2 = "相對不太精確的匹配。

mail.matches(reg1);

2、切割:string split();

string str ="adfa   afaf  afaf";

string reg = " +";//按照多個空格來進行切割

string arr = str.split(reg);

為了可以讓規則的結果被重用,可以將規則封裝成乙個組。用()完成。組的出現都有編號。

從1開始。 想要使用已有的組可以通過  \n(n就是組的編號)的形式來獲取。

3、替換:string replaceall(regex,str);如果regex中有定義組,可以在第二引數中通過$符號獲取正規表示式中的已有的組。

replaceall(string regex, string replacement) 使用給定的 replacement 替換此字串所有匹配給定的正規表示式的子字串。

string str = "erkktyqqquizzzzzo"; //將重疊的字元替換成單個字母。zzzz->z

reg="(.)\\1+";

newstr="$1";

str = str.replaceall(reg,newstr);

4、獲取:將字串中的符合規則的子串取出。

操作步驟:

1、將正規表示式封裝成物件。

2、讓正則物件和要操作的字串相關聯。

3、關聯後,獲取正則匹配引擎。

4、通過引擎對符合規則的子串進行操作,比如取出。

string str = "";

string reg = "

\\b[a-z]\\b";

//將規則封裝成物件。

pattern p = pattern.compile(reg);

//讓正則物件和要作用的字串相關聯。獲取匹配器物件。

matcher m  = p.matcher(str);

//將規則作用到字串上,並進行符合規則的子串查詢。

boolean b = m.find();

//用於獲取匹配後結果。

m.group();

字元 x 字元 x

\\ 反斜線字元

\0n 帶有八進位制值 0 的字元 n (0 <= n <= 7)

\0nn 帶有八進位制值 0 的字元 nn (0 <= n <= 7)

\0mnn 帶有八進位制值 0 的字元 mnn(0 <= m <= 3、0 <= n <= 7)

\xhh 帶有十六進製制值 0x 的字元 hh

\uhhhh 帶有十六進製制值 0x 的字元 hhhh

\t 製表符 ('\u0009')

\n 新行(換行)符 ('\u000a')

\r 回車符 ('\u000d')

\f 換頁符 ('\u000c')

\a 報警 (bell) 符 ('\u0007')

\e 轉義符 ('\u001b')

\cx 對應於 x 的控制符

字元類

[abc] a、b 或 c(簡單類)

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

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

[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](並集)

[a-z&&[def]] d、e 或 f(交集)

[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去)

[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](減去)

預定義字元類

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

\d 數字:[0-9]

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

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

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

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

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

邊界匹配器

^ 行的開頭

$ 行的結尾

\b 單詞邊界

\b 非單詞邊界

\a 輸入的開頭

\g 上乙個匹配的結尾

\z 輸入的結尾,僅用於最後的結束符(如果有的話)

\z 輸入的結尾

數量詞

x? x,一次或一次也沒有

x* x,零次或多次

x+ x,一次或多次

x x,恰好 n 次

x x,至少 n 次

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

組和捕獲

捕獲組可以通過從左到右計算其開括號來編號。例如,在表示式 ((a)(b(c))) 中,存在四個這樣的組:

1     ((a)(b(c)))

2     \a

3     (b(c))

4     (c)

組零始終代表整個表示式。

---------------------- asp.net+android+ios">"target="blank">asp.net+android+ios開發、.net">"target="blank">.net培訓、期待與您交流! ----------------------

黑馬程式設計師 正規表示式學習筆記

asp.net android ios開發.net培訓 期待與您交流!package day25 正規表示式 符合一定規則的表示式 作用 用於專門操作字串 特點 用一些特定的符號來表示一些 操作,這樣就簡化書寫。所以學習正規表示式就是在學習一些特殊符號的使用。好處 可以簡化對字串的複雜操作。具體操作...

黑馬程式設計師 正規表示式

asp.net android io開發s net培訓 期待與您交流!正規表示式 定義 其實是用來操作字串的一些規則。好處 正則的出現,對字串的複雜操作變得更為簡單。特點 將對字串操作的 用一些符號來表示。只要使用了指定符號,就可以呼叫底層的 對字串進行操作。符號的出現,簡化了 的書寫。弊端 符號的...

黑馬程式設計師 正規表示式

正規表示式 某個描述字串物件是不是跟符合我設定的語法規則。public class test w com org com cn 這個字串表示 在大小寫英文,和數字組合的字串 長度為7 13之間 中間有 隔開郵箱型別,郵箱型別長度3 5之間,尾部字尾 com org 或 com.cn system.o...