正規表示式

2021-08-21 21:02:37 字數 4817 閱讀 6871

1.正規表示式的匹配規則

在pattern類中有正規表示式的的規則定義,正規表示式中明確區分大小寫字母.

表示式的語法規則:

字元:x

含義:代表的是字元x

例如:匹配規則為"a",那麼需要匹配的字串內容就是 」a」

字元:\\

含義:代表的是反斜線字元'\'

例如:匹配規則為"\\" ,那麼需要匹配的字串內容就是 」\」

字元:\t

含義:製表符

例如:匹配規則為"\t" ,那麼對應的效果就是產生乙個製表符的空間

字元:\n

含義:換行符

例如:匹配規則為"\n",那麼對應的效果就是換行,游標在原有位置的下一行

字元:\r

含義:回車符

例如:匹配規則為"\r",那麼對應的效果就是回車後的效果,游標來到下一行行首

字元類:[abc]

含義:代表的是字元a、b 或 c

例如:匹配規則為"[abc]",那麼需要匹配的內容就是字元a,或者字元b,或字元c的乙個

字元類:[^abc]

含義:代表的是除了 a、b 或 c以外的任何字元

例如:匹配規則為"[^abc]",那麼需要匹配的內容就是不是字元a,或者不是字元b,或不是字元c的任意乙個字元

字元類:[a-za-z]

含義:代表的是a 到 z 或 a 到 z,兩頭的字母包括在內

例如:匹配規則為"[a-za-z]",那麼需要匹配的是乙個大寫或者小寫字母

字元類:[0-9]

含義:代表的是 0到9數字,兩頭的數字包括在內

例如:匹配規則為"[0-9]",那麼需要匹配的是乙個數字

字元類:[a-za-z_0-9]

含義:代表的字母或者數字或者下劃線(即單詞字元)

例如:匹配規則為" [a-za-z_0-9] ",那麼需要匹配的是乙個字母或者是乙個數字或乙個下滑線

預定義字元類:.

含義:代表的是任何字元

例如:匹配規則為" . ",那麼需要匹配的是乙個任意字元。如果,就想使用 . 的話,使用匹配規則"\\."來實現

預定義字元類:\d

含義:代表的是 0到9數字,兩頭的數字包括在內,相當於

[0-9]

例如:匹配規則為"\d ",那麼需要匹配的是乙個數字

預定義字元類:\w

含義:代表的字母或者數字或者下劃線(即單詞字元),相當於[a-za-z_0-9]

例如:匹配規則為"\w ",,那麼需要匹配的是乙個字母或者是乙個數字或乙個下滑線

邊界匹配器:^

含義:代表的是行的開頭

例如:匹配規則為^[abc][0-9]$,那麼需要匹配的內容從[abc]這個位置開始, 相當於左雙引號

邊界匹配器:$

含義:代表的是行的結尾

例如:匹配規則為^[abc][0-9]$,那麼需要匹配的內容以[0-9]這個結束, 相當於右雙引號

邊界匹配器:\b

含義:代表的是單詞邊界

例如:匹配規則為"\b[abc]\b",那麼代表的是字母a或b或c的左右兩邊需要的是非單詞字元([a-za-z_0-9])

數量詞:x?

含義:代表的是x出現一次或一次也沒有

例如:匹配規則為"a?",那麼需要匹配的內容是乙個字元a,或者乙個a都沒有

數量詞:x*

含義:代表的是x出現零次或多次

例如:匹配規則為"a*",那麼需要匹配的內容是多個字元a,或者乙個a都沒有

數量詞:x+

含義:代表的是x出現一次或多次

例如:匹配規則為"a+",那麼需要匹配的內容是多個字元a,或者乙個a

數量詞:x

含義:代表的是x出現恰好 n 次

例如:匹配規則為"a",那麼需要匹配的內容是5個字元a

數量詞:x

含義:代表的是x出現至少 n 次

例如:匹配規則為"a",那麼需要匹配的內容是最少有5個字元a

數量詞:x

含義:代表的是x出現至少 n 次,但是不超過 m 次

例如:匹配規則為"a",那麼需要匹配的內容是有5個字元a 到 8個字元a之間

2.正規表示式規則匹配練習

規則:"[0-9]"

該規則需要匹配的內容是:長度為6位到12位的數字。

如:使用資料"123456789"進行匹配結果為true;

使用資料"12345"進行匹配結果為false。

規則:"1[34578][0-9]"

該規則需要匹配的內容是:11位的手機號碼,第1位為1,第2位為3、4、5、7、8中的乙個,後面9位為0到9之間的任意數字

如:使用資料"12345678901"進行匹配結果為false;

使用資料"13312345678"進行匹配結果為true。

規則:"a*b"

該規則需要匹配的內容是:在多個a或零個a後面有個b;b必須為最後乙個字元。

如:使用資料"aaaaab"進行匹配結果為true;

使用資料"abc"進行匹配結果為false。

3.字串類中涉及正規表示式的常用方法

public boolean matches(string regex) //判斷字串是否匹配給定的規則

舉例:校驗qq號碼.

1: 要求必須是5-15位數字

2: 0不能開頭

**演示:

string qq = "604154942";

string regex = "[1-9][0-9]";

boolean flag2 = qq.matches(regex);

舉例:校驗手機號碼

1:要求為11位數字

2:第1位為1,第2位為3、4、5、7、8中的乙個,後面9位為0到9之間的任意數字。

**演示:

string phone = "18800022116";

string regex = "1[34578][0-9]";

boolean flag = phone.matches(regex);

public string split(string regex) //根據給定正規表示式的匹配規則,拆分此字串

舉例:分割出字串中的的數字

**演示:

string s = "18-22-40-65";

string regex = "-";

string result = s.split(regex);

**演示:

string s = "18 22 40 65";

string regex = " ";

string result = s.split(regex);

public string replaceall(string regex,string replacement) //將符合規則的字串內容,全部替換為新字串

舉例:把文字中的數字替換成*

**演示:

string s = "hello12345world6789012";

string regex = "[0-9]";

string result = s.replaceall(regex, "*");

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...