知了堂學習筆記 正規表示式

2021-08-08 21:49:23 字數 2941 閱讀 9393

正規表示式

正規表示式又稱規則表示式,正則表通常被用來檢索、替換那些符合某個模式(規則

)的文字。

定義

正規表示式是對字串(包括普通字元(例如,a 到

z 之間的字母)和特殊字元(稱為

「元字元

」))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個

「規則字串

」,這個

「規則字串

」用來表達對字串的一種過濾邏輯。正規表示式是一種文字模式,模式描述在搜尋文字時要匹配的乙個或多個字串。

符號:1、

字元 x字元x

\\反斜線字元

\n換行

\r回車符

\f換頁符

\e轉義符

\t製表符 2

、字元類

[abc]

a、b或c(簡單類)

[^abc]

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

[a-za-z]

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

[0-9]

0到9的字元都包括

[a-d[m-p]]

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

[a-z&&[^m-p]]

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

[a-z&&[^bc]]

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

3、預定義字元類 .

任何字元 ,而.本身用\. 表示

\d數字 相當於 [0-9]

\d非數字 [^0-9]

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

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

\w單詞字元 [a-za-z_0-9] 在正規表示式裡面組成單詞的東西必須有這些組成

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

4、邊界匹配器 ^

行的開頭

$行的結尾

\b單詞邊界 就是不是單詞字元的地方。例:hello world 裡面的空格5、

greedy 

數量詞

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

x*x,零次或多次

x+x,一次或多次

xx,恰好 n 次

xx,至少 n 次

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

應用

.判斷a.  定義手機號碼規則 :匹配130-139 150-159(除去154號段) 147 170 171 176-178 180-189號段   

publicstaticvoid main(string args) ";

boolean flag1 =s1.matches(regex);

boolean flag2 =s2.matches(regex);

system.out.println("flag1="+flag1+ " " +"flag2="+flag2);

}

結果:flag1=true  flag2=false

b. 定義郵箱規則: 賬號+@+網域名稱   

賬號為字母、數字、下劃線組成 ,即:[a-za-z_0-9]+

網域名稱 :網域名稱主體+網域名稱字尾 例如qq.com  網域名稱主體由字母、數字、下劃線組成 即 [a-za-z_0-9]+ ;網域名稱字尾由 .+字母、數字或下劃線 ,可能會出現多次(\\.[a-za-z_0-9]+)+

綜上可得最終規則: ^[a-za-z_0-9]+@[a-za-z_0-9]+(\\.[a-za-z_0-9]+)+$

public static void main(stringargs)
結果:flag1=true flag2=true二.

分割 將下列字串分割為得到 a b c

strings="a.b.c";

strings1 ="a\\b\\c";

strings2 = "a b     c";

publicstaticvoid main(string args) 

system.out.print(" ");

string s1 = "a\\b\\c";

string arr1 =s1.split("\\\\");

for (string string : arr1)

system.out.print(" ");

string s2 = "a b c";

stringarr2 = s2.split("+");

for (string string : arr2)

}

結果:abc abc abc

三、替換

把所有的數字去掉

strings ="hello123345world9008";

publicstaticvoid main(string args)
結果:helloworld

四、獲取

獲取兩個字母組成的單詞

strings ="jin tian tian qihen hao, ke yi chu qu wan le";

publicstaticvoid main(string args) \\b";

//把規則編譯成模式物件

pattern p =pattern.compile(regex);

//通過模式物件得到匹配物件

matcher m = p.matcher(s);

//查詢是否存在滿足條件的子串

while (m.find())

}

結果:

qike

yiqu 

正規表示式學習筆記

正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...

正規表示式學習筆記

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

正規表示式學習筆記

1.正規表示式是可用於在乙個檔案或字元裡查詢和替代文字的一種標準。它具有兩種標準 基本的正規表示式 bre 擴充套件的正規表示式 ere ere包括bre功能和另外其它的概念。2.表示或運算 3.匹配任何單個字元 4.匹配任何中包含的單個字元,如 張王李 三,匹配張 三 王三,李三 5.將排除 後跟...