溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中有哪些常用正則表達(dá)式

發(fā)布時(shí)間:2021-06-24 15:42:06 來源:億速云 閱讀:196 作者:Leah 欄目:編程語言

Java中有哪些常用正則表達(dá)式,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

常用正則表達(dá)式(已驗(yàn)證):

//郵箱
public static final String EMAIL_PATTERN = "\\w+@\\w+\\.(com\\.cn)|\\w+@\\w+\\.(com|cn)";
//中文
public static final String CHINESE_PATTERN = "^[\u4e00-\u9fa5]{0,}$";
//數(shù)字和字母
public static final String NUMBER_ADN_LETTER = "^[A-Za-z0-9]+$";
//qq
public static final String QQ_PATTERN = "/[1-9][0-9]{4,}/";
//數(shù)字
public static final String NUMBER_PATTERN = "[0-9]+";
//字母
public static final String LETTER_PATTERN = "[a-zA-Z]+";
//郵編
public static final String ZIPCODE_PATTERN = "\\p{Digit}{6}";
//手機(jī)
public static final String PHONE_PATTERN = "^(13[0-9]|14[579]|15[^4,\\D]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$";
public static final String PHONE_PATTERN2 = "^1[3456789][0-9]{9}$"
//固定電話
public static final String TELEPHONE_PATTERN = "^(0\\d{2,3}-)?(\\d{7,8})(-(\\d{3,}))?$";
//400固話
public static final String TELEPHONE_400_PATTERN = "((400)(\\d{7}))|((400)-(\\d{3})-(\\d{4}))";
//中國身份證
public static final String IDCARD_PATTERN = "^((11|12|13|14|15|21|22|23|31"
        + "|32|33|34|35|36|37|41|42|43|44|45|46|50|51|"
        + "52|53|54|61|62|63|64|65|71|81|82|91)\\d{4})"
        + "((((19|20)(([02468][048])|([13579][26]))0229))|"
        + "((20[0-9][0-9])|(19[0-9][0-9]))((((0[1-9])|(1[0-2]))"
        + "((0[1-9])|(1\\d)|(2[0-8])))|((((0[1,3-9])"
        + "|(1[0-2]))(29|30))|(((0[13578])|(1[02]))31))))"
        + "((\\d{3}(x|X))|(\\d{4}))$";
public static final String USERNAME_PATTERN = "^[A-Za-z0-9_]{3,15}$";
public static final String PASSWORD_PATTERN = "^(?![0-9]+$)[0-9A-Za-z]{6,20}$";
//uuid
public static final String UUID_PATTERN = "[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}";
//日期類型
public static final String DATE_PATTERN = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
//時(shí)間戳
public static final String TIME_STAMP_PATTERN = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\s]?((((0?[13578])|(1[02]))[\\-\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\s]?((((0?[13578])|(1[02]))[\\-\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\s]?((0?[1-9])|(1[0-9])|(2[0-8])))))) ([2][0-3]|[0-1][0-9]|[1-9]):[0-5][0-9]:([0-5][0-9]|[6][0])$";
//ip v4
public static final String IPV4_PATTERN = "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
//ip v6
public static final String IPV6_PATTERN = "([0-9a-f]+)\\:([0-9a-f]+)\\:([0-9a-f]+)\\:([0-9a-f]+)\\:([0-9a-f]+)\\:([0-9a-f]+)\\:([0-9a-f]+)\\:([0-9a-f]+)";
//url
public static final String URL_PATTERN = "^(http|https|ftp)\\://([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$";
//域名
public static final String DOMAIN_PATTERN = "^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$";
//整數(shù)或者浮點(diǎn)數(shù)
public static final String INT_OR_FLOAT_PATTERN = "^\\d+\\.\\d+|\\d+$";
//浮點(diǎn)數(shù)
public static final String FLOAT_PATTERN = "^(-?\\d+)(\\.\\d+)?$";
//正整數(shù)
public static final String POSITIVE_INTEGER = "[1-9]+\\d{0,10}";
//軍官證@since 0.3
public static final String ARMY_ID_CARD = "南字第(\\d{6,8})號(hào)|北字第(\\d{6,8})號(hào)|沈字第(\\d{6,8})號(hào)|蘭字第(\\d{6,8})號(hào)|成字第(\\d{6,8})號(hào)|濟(jì)字第(\\d{6,8})號(hào)|廣字第(\\d{6,8})號(hào)|海字第(\\d{6,8})號(hào)|空字第(\\d{6,8})號(hào)|參字第(\\d{6,8})號(hào)|政字第(\\d{6,8})號(hào)|后字第(\\d{6,8})號(hào)|裝字第(\\d{6,8})號(hào)";

請(qǐng)注意有“\\”的地方,其中一個(gè) "\" 是轉(zhuǎn)義符 。

以下是菜鳥工具的網(wǎng)站提供的正則表達(dá)式:

一、校驗(yàn)數(shù)字的表達(dá)式

  • 數(shù)字:^[0-9]*$

  • n位的數(shù)字:^\d{n}$

  • 至少n位的數(shù)字:^\d{n,}$

  • m-n位的數(shù)字:^\d{m,n}$

  • 零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$

  • 非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$

  • 帶1-2位小數(shù)的正數(shù)或負(fù)數(shù):^(\-)?\d+(\.\d{1,2})$

  • 正數(shù)、負(fù)數(shù)、和小數(shù):^(\-|\+)?\d+(\.\d+)?$

  • 有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(\.[0-9]{2})?$

  • 有1~3位小數(shù)的正實(shí)數(shù):^[0-9]+(\.[0-9]{1,3})?$

  • 非零的正整數(shù):^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

  • 非零的負(fù)整數(shù):^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$

  • 非負(fù)整數(shù):^\d+$ 或 ^[1-9]\d*|0$

  • 非正整數(shù):^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

  • 非負(fù)浮點(diǎn)數(shù):^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

  • 非正浮點(diǎn)數(shù):^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

  • 正浮點(diǎn)數(shù):^[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]*))$

  • 負(fù)浮點(diǎn)數(shù):^-([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]*)))$

  • 浮點(diǎn)數(shù):^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

二、校驗(yàn)字符的表達(dá)式

  • 漢字:^[\u4e00-\u9fa5]{0,}$

  • 英文和數(shù)字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

  • 長度為3-20的所有字符:^.{3,20}$

  • 由26個(gè)英文字母組成的字符串:^[A-Za-z]+$

  • 由26個(gè)大寫英文字母組成的字符串:^[A-Z]+$

  • 由26個(gè)小寫英文字母組成的字符串:^[a-z]+$

  • 由數(shù)字和26個(gè)英文字母組成的字符串:^[A-Za-z0-9]+$

  • 由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串:^\w+$ 或 ^\w{3,20}$

  • 中文、英文、數(shù)字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$

  • 中文、英文、數(shù)字但不包括下劃線等符號(hào):^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

  • 可以輸入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+

  • 禁止輸入含有~的字符:[^~\x22]+

三、特殊需求表達(dá)式

  • Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

  • 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

  • InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

  • 手機(jī)號(hào)碼:^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

  • 電話號(hào)碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

  • 國內(nèi)電話號(hào)碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}

  • 電話號(hào)碼正則表達(dá)式(支持手機(jī)號(hào)碼,3-4位區(qū)號(hào),7-8位直播號(hào)碼,1-4位分機(jī)號(hào)): ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)

  • 身份證號(hào)(15位、18位數(shù)字),最后一位是校驗(yàn)位,可能為數(shù)字或字符X:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)

  • 帳號(hào)是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

  • 密碼(以字母開頭,長度在6~18之間,只能包含字母、數(shù)字和下劃線):^[a-zA-Z]\w{5,17}$

  • 強(qiáng)密碼(必須包含大小寫字母和數(shù)字的組合,不能使用特殊字符,長度在 8-10 之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$

  • 強(qiáng)密碼(必須包含大小寫字母和數(shù)字的組合,可以使用特殊字符,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

  • 日期格式:^\d{4}-\d{1,2}-\d{1,2}

  • 一年的12個(gè)月(01~09和1~12):^(0?[1-9]|1[0-2])$

  • 一個(gè)月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$

  • xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$

  • 中文字符的正則表達(dá)式:[\u4e00-\u9fa5]

  • 雙字節(jié)字符:[^\x00-\xff] (包括漢字在內(nèi),可以用來計(jì)算字符串的長度(一個(gè)雙字節(jié)字符長度計(jì)2,ASCII字符計(jì)1))

  • 空白行的正則表達(dá)式:\n\s*\r (可以用來刪除空白行)

  • HTML標(biāo)記的正則表達(dá)式:<(\S*?)[^>]*>.*?|<.*? /> ( 首尾空白字符的正則表達(dá)式:^\s*|\s*$或(^\s*)|(\s*$) (可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達(dá)式)

  • 騰訊QQ號(hào):[1-9][0-9]{4,} (騰訊QQ號(hào)從10000開始)

  • 中國郵政編碼:[1-9]\d{5}(?!\d) (中國郵政編碼為6位數(shù)字)

  • IPv4地址:((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}

錢的輸入格式:

  1. 有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$

  2. 這表示任意一個(gè)不以0開頭的數(shù)字,但是,這也意味著一個(gè)字符"0"不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$

  3. 一個(gè)0或者一個(gè)不以0開頭的數(shù)字.我們還可以允許開頭有一個(gè)負(fù)號(hào):^(0|-?[1-9][0-9]*)$

  4. 這表示一個(gè)0或者一個(gè)可能為負(fù)的開頭不為0的數(shù)字.讓用戶以0開頭好了.把負(fù)號(hào)的也去掉,因?yàn)殄X總不能是負(fù)的吧。下面我們要加的是說明可能的小數(shù)部分:^[0-9]+(.[0-9]+)?$

  5. 必須說明的是,小數(shù)點(diǎn)后面至少應(yīng)該有1位數(shù),所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$

  6. 這樣我們規(guī)定小數(shù)點(diǎn)后面必須有兩位,如果你認(rèn)為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$

  7. 這樣就允許用戶只寫一位小數(shù).下面我們?cè)摽紤]數(shù)字中的逗號(hào)了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$

  8. 1到3個(gè)數(shù)字,后面跟著任意個(gè) 逗號(hào)+3個(gè)數(shù)字,逗號(hào)成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

  9. 備注:這就是最終結(jié)果了,別忘了"+"可以用"*"替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數(shù)時(shí)去掉去掉那個(gè)反斜杠,一般的錯(cuò)誤都在這里

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI