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