正規表示式

2021-08-18 17:40:26 字數 2809 閱讀 9630

一、概述正規表示式(英語:regular expression,在**中常簡寫為regex)。

正規表示式是乙個字串,使用單個字串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正規表示式通常被用來檢索、替換那些符合某個規則的文字。

二、方法

matches

匹配split

切割replaceall

替換查詢並獲取:

pattern p = pattern.compile("正規表示式");

matcher m = p.matcher(要匹配的字串);

boolean b = m.matches();

示例:

public static void main(string args) 

//手機號驗證

public static boolean ismobile(string str) $"); // 驗證手機號

matcher m = p.matcher(str);

return m.matches();

}

三、語法(1)預定義字元類

^行的開頭

$行的結尾

.任何字元

\d數字

\d非數字

\s空白符

\s非空白符

\w單詞符[a-za-z_0-9]

\w非單詞符

\t製表符

\n換行符

\r回車符

\b單詞邊界匹配器開始和結束部分

\\反斜線字元'\',匹配規則為"\\" ,需要匹配的字串內容就是 」\」

(2)數量詞

x?x一次或一次也沒有

x*x 0次或多次

x+x一次或多次

xx恰好n次

xx至少n次

xx n到m次

(3)範圍詞

[abc]

在abc內

[^abc]

除了abc

[a-za-z]

a到z或a到z

(4)示例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

四、常用正規表示式(1)校驗手機號碼:

string phone = "18800022116";

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

boolean flag = phone.matches(regex);

(2)匹配數字

匹配正整數:\\d+

匹配正小數:\\d+\\.\\d+  

匹配負整數:-\\d+

匹配負小數:-\\d+\\.\\d+

匹配保留兩位小數的正數:\\d+\\.\\d

匹配保留1-3位小數的正數:\\d+\\.\\d

[a-za-z_0-9]+@[a-za-z_0-9]+(\\.[a-za-z_0-9]+)+

\\w+@\\w+(\\.\\w+)+

(4)乙個或多個漢字

^[\u0391-\uffe5]+$ 

(5)qq號碼

^[1-9]\d$ 

(6)使用者名稱(字母開頭 + 數字/字母/下劃線)

^[a-za-z][a-za-z1-9_-]+$

(7)暱稱

^[a-za-z一-龥][a-za-z0-9一-龥]$

(8)密碼

(10)18位身份證號

^(\d)(18|19|20)?(\d)([01]\d)([0123]\d)(\d)(\d|x|x)?$

^[1-9]\d$

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

非負整數 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正規表示式 編寫正規表示式

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