Android 常用正則表示式整理
前言
閒扯一下,已經有好久沒更新部落格了,記得上一篇部落格的更新時間為 2017-05-12 15:20。截止到今天,超過一百天沒更新了。
這篇部落格的內容大多數是從別的部落格摘抄過來的,寫這篇部落格的目的主要是整理正則表示式的文章,方便日後檢視。
- java 正則表示式常用的字元說明
- 常用的正則表示式
- java 正則表示式的使用
- 常用的工具類 RexUtils(匹配電話號碼,身份張,電子郵箱,IP地址等)
java 正則表示式常用的字元說明
字元 | 說明 |
---|---|
\ | 將下一字元標記為特殊字元、文字、反向引用或八進位制轉義符。例如,”n”匹配字元”n”。”\n”匹配換行符。序列”\\”匹配”\”,”\(“匹配”(“。 |
^ | 匹配輸入字串開始的位置。如果設定了 RegExp 物件的 Multiline 屬性,^ 還會與”\n”或”\r”之後的位置匹配。 |
$ | 匹配輸入字串結尾的位置。如果設定了 RegExp 物件的 Multiline 屬性,$ 還會與”\n”或”\r”之前的位置匹配。 |
* | 零次或多次匹配前面的字元或子表示式。例如,zo* 匹配”z”和”zoo”。* 等效於 {0,}。 |
+ | 一次或多次匹配前面的字元或子表示式。例如,”zo+”與”zo”和”zoo”匹配,但與”z”不匹配。+ 等效於 {1,}。 |
? | 零次或一次匹配前面的字元或子表示式。例如,”do(es)?”匹配”do”或”does”中的”do”。? 等效於 {0,1}。 |
{n} | n 是非負整數。正好匹配 n 次。例如,”o{2}”與”Bob”中的”o”不匹配,但與”food”中的兩個”o”匹配。 |
{n,} | n 是非負整數。至少匹配 n 次。例如,”o{2,}”不匹配”Bob”中的”o”,而匹配”foooood”中的所有 o。”o{1,}”等效於”o+”。”o{0,}”等效於”o*”。 |
{n,m} | M 和 n 是非負整數,其中 n <= m。匹配至少 n 次,至多 m 次。例如,”o{1,3}”匹配”fooooood”中的頭三個 o。’o{0,1}’ 等效於 ‘o?’。注意:您不能將空格插入逗號和數字之間。 |
? | 當此字元緊隨任何其他限定符(*、+、?、{n}、{n,}、{n,m})之後時,匹配模式是”非貪心的”。”非貪心的”模式匹配搜尋到的、儘可能短的字串,而預設的”貪心的”模式匹配搜尋到的、儘可能長的字串。例如,在字串”oooo”中,”o+?”只匹配單個”o”,而”o+”匹配所有”o”。 |
. | 匹配除”\r\n”之外的任何單個字元。若要匹配包括”\r\n”在內的任意字元,請使用諸如”[\s\S]”之類的模式。 |
(pattern) | 匹配 pattern 並捕獲該匹配的子表示式。可以使用 0…9 屬性從結果”匹配”集合中檢索捕獲的匹配。若要匹配括號字元 ( ),請使用”(“或者”)”。 |
(?:pattern) | 匹配 pattern 但不捕獲該匹配的子表示式,即它是一個非捕獲匹配,不儲存供以後使用的匹配。這對於用”or”字元 ( |
(?=pattern) | 執行正向預測先行搜尋的子表示式,該表示式匹配處於匹配 pattern 的字串的起始點的字串。它是一個非捕獲匹配,即不能捕獲供以後使用的匹配。例如,’Windows (?=95 |
(?!pattern) | 執行反向預測先行搜尋的子表示式,該表示式匹配不處於匹配 pattern 的字串的起始點的搜尋字串。它是一個非捕獲匹配,即不能捕獲供以後使用的匹配。例如,’Windows (?!95 |
x | y |
[xyz] | 字符集。匹配包含的任一字元。例如,”[abc]”匹配”plain”中的”a”。 |
[^xyz] | 反向字符集。匹配未包含的任何字元。例如,”[^abc]”匹配”plain”中”p”,”l”,”i”,”n”。 |
[a-z] | 字元範圍。匹配指定範圍內的任何字元。例如,”[a-z]”匹配”a”到”z”範圍內的任何小寫字母。 |
[^a-z] | 反向範圍字元。匹配不在指定的範圍內的任何字元。例如,”[^a-z]”匹配任何不在”a”到”z”範圍內的任何字元。 |
\b | 匹配一個字邊界,即字與空格間的位置。例如,”er\b”匹配”never”中的”er”,但不匹配”verb”中的”er”。 |
\B | 非字邊界匹配。”er\B”匹配”verb”中的”er”,但不匹配”never”中的”er”。 |
\cx | 匹配 x 指示的控制字元。例如,\cM 匹配 Control-M 或回車符。x 的值必須在 A-Z 或 a-z 之間。如果不是這樣,則假定 c 就是”c”字元本身。 |
\d | 數字字元匹配。等效於 [0-9]。 |
\D | 非數字字元匹配。等效於 [^0-9]。 |
\f | 換頁符匹配。等效於 \x0c 和 \cL。 |
\n | 換行符匹配。等效於 \x0a 和 \cJ。 |
\r | 匹配一個回車符。等效於 \x0d 和 \cM。 |
\s | 匹配任何空白字元,包括空格、製表符、換頁符等。與 [ \f\n\r\t\v] 等效。 |
\S | 匹配任何非空白字元。與 [^ \f\n\r\t\v] 等效。 |
\t | 製表符匹配。與 \x09 和 \cI 等效。 |
\v | 垂直製表符匹配。與 \x0b 和 \cK 等效。 |
\w | 匹配任何字類字元,包括下劃線。與”[A-Za-z0-9_]”等效。 |
\W | 與任何非單詞字元匹配。與”[^A-Za-z0-9_]”等效。 |
\xn | 匹配 n,此處的 n 是一個十六進位制轉義碼。十六進位制轉義碼必須正好是兩位數長。例如,”\x41”匹配”A”。”\x041”與”\x04”&”1”等效。允許在正則表示式中使用 ASCII 程式碼。 |
\num | 匹配 num,此處的 num 是一個正整數。到捕獲匹配的反向引用。例如,”(.)\1”匹配兩個連續的相同字元。 |
\n | 標識一個八進位制轉義碼或反向引用。如果 \n 前面至少有 n 個捕獲子表示式,那麼 n 是反向引用。否則,如果 n 是八進位制數 (0-7),那麼 n 是八進位制轉義碼。 |
\nm | 標識一個八進位制轉義碼或反向引用。如果 \nm 前面至少有 nm 個捕獲子表示式,那麼 nm 是反向引用。如果 \nm 前面至少有 n 個捕獲,則 n 是反向引用,後面跟有字元 m。如果兩種前面的情況都不存在,則 \nm 匹配八進位制值 nm,其中 n 和 m 是八進位制數字 (0-7)。 |
\nml | 當 n 是八進位制數 (0-3),m 和 l 是八進位制數 (0-7) 時,匹配八進位制轉義碼 nml。 |
\un | 匹配 n,其中 n 是以四位十六進位制數表示的 Unicode 字元。例如,\u00A9 匹配版權符號 (©)。 |
以上內容來自 Java 正則表示式,該文章裡面寫得很細。
常用的正則表示式
一、校驗數字的表示式
1 數字:^[0-9]*$
2 n位的數字:^\d{n}$
3 至少n位的數字:^\d{n,}$
4 m-n位的數字:^\d{m,n}$
5 零和非零開頭的數字:^(0|[1-9][0-9]*)$
6 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 帶1-2位小數的正數或負數:^(\-)?\d+(\.\d{1,2})?$
8 正數、負數、和小數:^(\-|\+)?\d+(\.\d+)?$
9 有兩位小數的正實數:^[0-9]+(.[0-9]{2})?$
10 有1~3位小數的正實數:^[0-9]+(.[0-9]{1,3})?$
11 非零的正整數:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12 非零的負整數:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 非負整數:^\d+$ 或 ^[1-9]\d*|0$
14 非正整數:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15 非負浮點數:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16 非正浮點數:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17 正浮點數:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18 負浮點數:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19 浮點數:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
二、校驗字元的表示式
1 漢字:^[\u4e00-\u9fa5]{0,}$
2 英文和數字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
3 長度為3-20的所有字元:^.{3,20}$
4 由26個英文字母組成的字串:^[A-Za-z]+$
5 由26個大寫英文字母組成的字串:^[A-Z]+$
6 由26個小寫英文字母組成的字串:^[a-z]+$
7 由數字和26個英文字母組成的字串:^[A-Za-z0-9]+$
8 由數字、26個英文字母或者下劃線組成的字串:^\w+$ 或 ^\w{3,20}$
9 中文、英文、數字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中文、英文、數字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 可以輸入含有^%&',;=?$\"等字元:[^%&',;=?$\x22]+
12 禁止輸入含有~的字元:[^~\x22]+
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
三、特殊需求表示式
1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
4 手機號碼:^(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{8}$
5 電話號碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
6 國內電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
7 身份證號(15位、18位數字):^\d{15}|\d{18}$
8 短身份證號碼(數字、字母x結尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
9 帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-zA-Z]\w{5,17}$
11 強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
13 一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
14 一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
15 錢的輸入格式:
16 1.有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
17 2.這表示任意一個不以0開頭的數字,但是,這也意味著一個字元"0"不通過,所以我們採用下面的形式:^(0|[1-9][0-9]*)$
18 3.一個0或者一個不以0開頭的數字.我們還可以允許開頭有一個負號:^(0|-?[1-9][0-9]*)$
19 4.這表示一個0或者一個可能為負的開頭不為0的數字.讓使用者以0開頭好了.把負號的也去掉,因為錢總不能是負的吧.下面我們要加的是說明可能的小數部分:^[0-9]+(.[0-9]+)?$
20 5.必須說明的是,小數點後面至少應該有1位數,所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$
21 6.這樣我們規定小數點後面必須有兩位,如果你認為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$
22 7.這樣就允許使用者只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
23 8.1到3個數字,後面跟著任意個 逗號+3個數字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
24 備註:這就是最終結果了,別忘了"+"可以用"*"替代如果你覺得空字串也可以接受的話(奇怪,為什麼?)最後,別忘了在用函式時去掉去掉那個反斜槓,一般的錯誤都在這裡
25 xml檔案:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
26 中文字元的正則表示式:[\u4e00-\u9fa5]
27 雙位元組字元:[^\x00-\xff] (包括漢字在內,可以用來計算字串的長度(一個雙位元組字元長度計2,ASCII字元計1))
28 空白行的正則表示式:\n\s*\r (可以用來刪除空白行)
29 HTML標記的正則表示式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (網上流傳的版本太糟糕,上面這個也僅僅能部分,對於複雜的巢狀標記依舊無能為力)
30 首尾空白字元的正則表示式:^\s*|\s*$或(^\s*)|(\s*$) (可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表示式)
31 騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
32 中國郵政編碼:[1-9]\d{5}(?!\d) (中國郵政編碼為6位數字)
33 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址時有用)
34 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)) (由@飛龍三少 提供,感謝共享)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
java 正則表示式的使用
java.util.regex 包主要包括以下三個類:
- Pattern 類:
pattern 物件是一個正則表示式的編譯表示。Pattern 類沒有公共構造方法。要建立一個 Pattern 物件,你必須首先呼叫其公共靜態編譯方法,它返回一個 Pattern 物件。該方法接受一個正則表示式作為它的第一個引數。
- Matcher 類:
Matcher 物件是對輸入字串進行解釋和匹配操作的引擎。與Pattern 類一樣,Matcher 也沒有公共構造方法。你需要呼叫 Pattern 物件的 matcher 方法來獲得一個 Matcher 物件。
- PatternSyntaxException:
PatternSyntaxException 是一個非強制異常類,它表示一個正則表示式模式中的語法錯誤。
以下例項中使用了正則表示式 .runoob. 用於查詢字串中是否包了 runoob 子串:
例項
import java.util.regex.*;
class RegexExample1{
public static void main(String args[]){
String content = "I am noob " +
"from runoob.com.";
String pattern = ".*runoob.*";
boolean isMatch = Pattern.matches(pattern, content);
System.out.println("字串中是否包含了 'runoob' 子字串? " + isMatch);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
例項輸出結果為:
字串中是否包含了 'runoob' 子字串? true
- 1
RexUtils
- checkIdCard(String idCard)
驗證身份證號碼
- checkMobile(String mobile)
驗證手機號碼(支援國際格式,+86135xxxx…(中國內地),+00852137xxxx…(中國香港))
-
boolean checkPhone(String phone)
-
checkEmail
檢驗是否是電子郵箱。格式是數字,字母,下劃線,但不含有 -。
- checkDigit
驗證是否是整數
- checkDecimals
驗證整數和浮點數
- checkBlankSpace
檢驗是否是空白字元
- checkChinese
檢驗是否是中文
- checkBirthday
驗證日期(日期,格式:1992-09-03,或1992.09.03)
- 驗證 URL 地址
- checkIpAddress
匹配 IP 地址
- phoneNoHide
手機號碼,中間4位星號替換
- cardIdHide
銀行卡號,保留最後4位,其他星號替換
RexUtisl 工具類原始碼
/**
* 正則工具類-http://blog.csdn.net/xyang81/article/details/7706408
* 提供驗證郵箱、手機號、電話號碼、身份證號碼、數字等方法
*/
public final class RegexUtil {
/**
* 手機號碼,中間4位星號替換
*
* @param phone 手機號
* @return 星號替換的手機號
*/
public static String phoneNoHide(String phone) {
// 括號表示組,被替換的部分$n表示第n組的內容
// 正則表示式中,替換字串,括號的意思是分組,在replace()方法中,
// 引數二中可以使用$n(n為數字)來依次引用模式串中用括號定義的字串。
// "(\d{3})\d{4}(\d{4})", "$1****$2"的這個意思就是用括號,
// 分為(前3個數字)中間4個數字(最後4個數字)替換為(第一組數值,保持不變$1)(中間為*)(第二組數值,保持不變$2)
return phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}
/**
* 銀行卡號,保留最後4位,其他星號替換
*
* @param cardId 卡號
* @return 星號替換的銀行卡號
*/
public static String cardIdHide(String cardId) {
return cardId.replaceAll("\\d{15}(\\d{3})", "**** **** **** **** $1");
}
/**
* 身份證號,中間10位星號替換
*
* @param id 身份證號
* @return 星號替換的身份證號
*/
public static String idHide(String id) {
return id.replaceAll("(\\d{4})\\d{10}(\\d{4})", "$1** **** ****$2");
}
/**
* 是否為車牌號(滬A88888)
*
* @param vehicleNo 車牌號
* @return 是否為車牌號
*/
public static boolean checkVehicleNo(String vehicleNo) {
Pattern pattern = Pattern.compile("^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{5}$");
return pattern.matcher(vehicleNo).find();
}
/**
* 驗證身份證號碼
*
* @param idCard 居民身份證號碼15位或18位,最後一位可能是數字或字母
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkIdCard(String idCard) {
String regex = "[1-9]\\d{13,16}[a-zA-Z0-9]{1}";
return Pattern.matches(regex, idCard);
}
/**
* 驗證手機號碼(支援國際格式,+86135xxxx...(中國內地),+00852137xxxx...(中國香港))
*
* @param mobile 移動、聯通、電信運營商的號碼段
* <p>移動的號段:134(0-8)、135、136、137、138、139、147(預計用於TD上網絡卡)
* 、150、151、152、157(TD專用)、158、159、187(未啟用)、188(TD專用)</p>
* <p>聯通的號段:130、131、132、155、156(世界風專用)、185(未啟用)、186(3g)</p>
* <p>電信的號段:133、153、180(未啟用)、189</p>
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkMobile(String mobile) {
String regex = "(\\+\\d+)?1[3458]\\d{9}$";
return Pattern.matches(regex, mobile);
}
/**
* 驗證固定電話號碼
*
* @param phone 電話號碼,格式:國家(地區)電話程式碼 + 區號(城市程式碼) + 電話號碼,如:+8602085588447
* <p><b>國家(地區) 程式碼 :</b>標識電話號碼的國家(地區)的標準國家(地區)程式碼。它包含從 0 到 9 的一位或多位數字,
* 數字之後是空格分隔的國家(地區)程式碼。</p>
* <p><b>區號(城市程式碼):</b>這可能包含一個或多個從 0 到 9 的數字,地區或城市程式碼放在圓括號——
* 對不使用地區或城市程式碼的國家(地區),則省略該元件。</p>
* <p><b>電話號碼:</b>這包含從 0 到 9 的一個或多個數字 </p>
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkPhone(String phone) {
String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";
return Pattern.matches(regex, phone);
}
/**
* 驗證Email
*
* @param email email地址,格式:[email protected],[email protected],xxx代表郵件服務商
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkEmail(String email) {
String regex = "\\[email protected]\\w+\\.[a-z]+(\\.[a-z]+)?";
return Pattern.matches(regex, email);
}
/**
* 驗證整數(正整數和負整數)
*
* @param digit 一位或多位0-9之間的整數
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkDigit(String digit) {
String regex = "\\-?[1-9]\\d+";
return Pattern.matches(regex, digit);
}
/**
* 驗證整數和浮點數(正負整數和正負浮點數)
*
* @param decimals 一位或多位0-9之間的浮點數,如:1.23,233.30
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkDecimals(String decimals) {
String regex = "\\-?[1-9]\\d+(\\.\\d+)?";
return Pattern.matches(regex, decimals);
}
/**
* 驗證空白字元
*
* @param blankSpace 空白字元,包括:空格、\t、\n、\r、\f、\x0B
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkBlankSpace(String blankSpace) {
String regex = "\\s+";
return Pattern.matches(regex, blankSpace);
}
/**
* 驗證中文
*
* @param chinese 中文字元
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkChinese(String chinese) {
String regex = "^[\u4E00-\u9FA5]+$";
return Pattern.matches(regex, chinese);
}
/**
* 驗證日期(年月日)
*
* @param birthday 日期,格式:1992-09-03,或1992.09.03
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkBirthday(String birthday) {
String regex = "[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}";
return Pattern.matches(regex, birthday);
}
/**
* 驗證URL地址
*
* @param url 格式:http://blog.csdn.net/gdutxiaoxu/article/details/71732642或 http://www.csdn.net:80
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkURL(String url) {
String regex = "(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?";
return Pattern.matches(regex, url);
}
/**
* 匹配中國郵政編碼
*
* @param postcode 郵政編碼
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkPostcode(String postcode) {
String regex = "[1-9]\\d{5}";
return Pattern.matches(regex, postcode);
}
/**
* 匹配IP地址(簡單匹配,格式,如:192.168.1.1,127.0.0.1,沒有匹配IP段的大小)
*
* @param ipAddress IPv4標準地址
* @return 驗證成功返回true,驗證失敗返回false
*/
public static boolean checkIpAddress(String ipAddress) {
String regex = "[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))";
return Pattern.matches(regex, ipAddress);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
更多工具類,歡迎到我的 Github 上面檢視, CommonLibrary
參考文章
相關推薦
Android 常用正則表示式整理
前言 閒扯一下,已經有好久沒更新部落格了,記得上一篇部落格的更新時間為 2017-05-12 15:20。截止到今天,超過一百天沒更新了。 這篇部落格的內容大多數是從別的部落格摘抄過來的,寫這篇部落格的目的主要是整理正則表示式的文章,方便日後檢視。 java 正則表示式常用的字元說明常用的正則表示式java
常用的正則表示式整理【轉載,防丟失】
轉載文章,好資源,防丟失。原文連結: http://blog.cspojie.cn/2017/09/26/常用的正則表示式整理/ 一、校驗數字的表示式 1 數字: ^[0-9]$ 2 n位的數字: ^\d{n}$ 3 至少n位的數字: ^\d{n,}$ 4 m-n位的數字:^
常用的 JS正則表示式整理
一、校驗數字的表示式 1 數字:^[0-9]*$ 2 n位的數字:^\d{n}$ 3 至少n位的數字:^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6 非零開頭的最多帶兩位小數的數字:^([
php 常用正則表示式彙總
1. 平時做網站經常要用正則表示式,下面是一些講解和例子,僅供大家參考和修改使用: 2. "^\d+$" //非負整數(正整數 + 0) 3. &n
常用正則表示式符號
正則表示式總結: \b : 單詞的開頭或結尾 . : 除了換行符以外的任意字元 * :前邊的內容可以連續重複使用任意次 \n : 換行符 \d :匹配一個數字 {n}
常用正則表示式收集
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
shell 常用正則表示式
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
常用正則表示式大全,手機 電話 郵箱 身份證 最嚴格的驗證 IP地址 網址 日期等,一般前臺js驗證,來這裡就夠了
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
常用正則表示式(copy)
一、校驗數字的表示式 數字:^[0-9]*$ n位的數字:^\d{n}$ 至少n位的數字:^\d{n,}$ m-n位的數字:^\d{m,n}$ 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(\.[0
常用正則表示式(高亮,markdown)
校驗數字的表示式 1 數字:^[0-9]*$ 2 n位的數字:^\d{n}$ 3 至少n位的數字:^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(
常用正則表示式_轉載
轉自網路: 常用正則表示式大全!(例如:匹配中文、匹配html) 匹配中文字元的正則表示式: [u4e00-u9fa5] 評註:匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元(包括漢字在內):[^x0
史上最全常用正則表示式大全
一、校驗數字的表示式 1. 數字:^[0-9]*$ 2. n位的數字:^\d{n}$ 3. 至少n位的數字:^\d{n,}$ 4. m-n位的數字:^\d{m,n}$ 5. 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6. 非零開頭的最多帶兩位小
常用正則表示式範例
、校驗數字的表示式 數字:^[0-9]*$ n位的數字:^\d{n}$ 至少n位的數字:^\d{n,}$ m-n位的數字:^\d{m,n}$ 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$
Java中常用正則表示式
表示式 含義 \\ &
正則匹配任意字元(常用正則表示式的書寫)
http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm 正則教程 (注:元字元包括\ | ( ) [ ] { } ^ $ * + ? . ) 匹配中文字元的正則表示式: [\u4e00-
常用正則表示式
概要: Java正則表示式的語法與示例 匹配驗證-驗證Email是否正確 在字串中查詢字元或者字串 常用正則表示式 正則表示式語法 匹配驗證-驗證Email是否正確 public static void main(String[] args) { // 要驗證的字串
常用正則表示式,手機號,郵箱,網址
// 判斷是否為手機號 isPoneAvailable: function (pone) { var myreg = /^[1][3,4,5,7,8][0-9]{9}$/; if (!myreg.test(pone)) { return false; } else { return true; } }, //
JavaScript正則表示式整理
只能輸入字串為數字:“^[-+]?[0-9]+\.[0-9]+$” 只能輸入數字:"^[0-9]*$" 只能輸入 n 位的數字:"^\d{n}$" 只能輸入至少 n 位的數字:"^\d{n,}$" 只能輸入 m ~ n 位的數字:"^\d{m,n}$" 只能輸入零和非零開頭
SAP ABAP常用正則表示式大全
特殊表示式 : 1.貨幣格式: '123123211312.333333'.replace(/(?=(?!^)(?:\d{3})+(?:\.|$))(\d{3}(\.\d+$)?)/g, ',$1') //輸出 123,123,211,312.333333 ps:TC
最常用正則表示式 你要的都在這裡了
一、校驗數字的表示式 1 數字:1*$ 2 n位的數字:^\d{n}$ 3 至少n位的數字:^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6 非零開頭的最多帶兩位小數的數字:^([1-9][