<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    常用正則表達(dá)式最強整理(速查手冊)

    共 5643字,需瀏覽 12分鐘

     ·

    2021-05-30 03:48

    不點藍(lán)字,我們哪來故事?

    每天 11 點更新文章,餓了點外賣,點擊 ??《無門檻外賣優(yōu)惠券,每天免費領(lǐng)!》

    來源 | IT牧場

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

    1. 數(shù)字:^[0-9]*$
    2. n位的數(shù)字:^\d{n}$
    3. 至少n位的數(shù)字:^\d{n,}$
    4. m-n位的數(shù)字:^\d{m,n}$
    5. 零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
    6. 非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
    7. 帶1-2位小數(shù)的正數(shù)或負(fù)數(shù):^(\-)?\d+(\.\d{1,2})?$
    8. 正數(shù)、負(fù)數(shù)、和小數(shù):^(\-|\+)?\d+(\.\d+)?$
    9. 有兩位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{2})?$
    10. 有1~3位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{1,3})?$
    11. 非零的正整數(shù):^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
    12. 非零的負(fù)整數(shù):^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
    13. 非負(fù)整數(shù):^\d+$ 或 ^[1-9]\d*|0$
    14. 非正整數(shù):^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
    15. 非負(fù)浮點數(shù):^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
    16. 非正浮點數(shù):^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
    17. 正浮點數(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]*))$
    18. 負(fù)浮點數(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]*)))$
    19. 浮點數(shù):^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

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

    1. 漢字:^[\u4e00-\u9fa5]{0,}$
    2. 英文和數(shù)字:^[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. 由數(shù)字和26個英文字母組成的字符串:^[A-Za-z0-9]+$
    8. 由數(shù)字、26個英文字母或者下劃線組成的字符串:^\w+$ 或 ^\w{3,20}
    9. 中文、英文、數(shù)字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$
    10. 中文、英文、數(shù)字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
    11. 可以輸入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+
    12. 禁止輸入含有~的字符[^~\x22]+

    其它:

    .*匹配除 \n 以外的任何字符。

    /[\u4E00-\u9FA5]/ 漢字

    /[\uFF00-\uFFFF]/ 全角符號

    /[\u0000-\u00FF]/ 半角符號

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

    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. 國內(nèi)電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
    7. 身份證號(15位、18位數(shù)字):^\d{15}|\d{18}$
    8. 短身份證號碼(數(shù)字、字母x結(jié)尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
    9. 帳號是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
    10. 密碼(以字母開頭,長度在6~18之間,只能包含字母、數(shù)字和下劃線):^[a-zA-Z]\w{5,17}$
    11. 強密碼(必須包含大小寫字母和數(shù)字的組合,不能使用特殊字符,長度在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)$

    錢的輸入格式:

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

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

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

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

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

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

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

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

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

    1. xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
    2. 中文字符的正則表達(dá)式:[\u4e00-\u9fa5]
    3. 雙字節(jié)字符:[^\x00-\xff] (包括漢字在內(nèi),可以用來計算字符串的長度(一個雙字節(jié)字符長度計2,ASCII字符計1))
    4. 空白行的正則表達(dá)式:\n\s*\r (可以用來刪除空白行)
    5. HTML標(biāo)記的正則表達(dá)式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (網(wǎng)上流傳的版本太糟糕,上面這個也僅僅能部分,對于復(fù)雜的嵌套標(biāo)記依舊無能為力)
    6. 首尾空白字符的正則表達(dá)式:^\s*|\s*$或(^\s*)|(\s*$) (可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達(dá)式)
    7. 騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
    8. 中國郵政編碼:[1-9]\d{5}(?!\d) (中國郵政編碼為6位數(shù)字)
    9. IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址時有用)
    10. IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
    11. IP-v4地址:\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b (提取IP地址時有用)
    12. 校驗IP-v6地址:(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
    13. 子網(wǎng)掩碼:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
    14. 校驗日期:^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$(“yyyy-mm-dd“ 格式的日期校驗,已考慮平閏年。)
    15. 抽取注釋:<!--(.*?)-->
    16. 查找CSS屬性:^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}
    17. 提取頁面超鏈接:(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^" rel="external nofollow" ]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>
    18. 提取網(wǎng)頁圖片:\\< *[img][^\\\\>]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)
    19. 提取網(wǎng)頁顏色代碼:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
    20. 文件擴(kuò)展名效驗:^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$
    21. 判斷IE版本:^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$

    附表:

    Spring Security 5.5發(fā)布,正式實裝OAuth2.0的第五種授權(quán)模式

    PS:

    • 在線正則表達(dá)式測試: http://tool.oschina.net/regex/

    往期推薦

    什么是數(shù)據(jù)湖?為什么要數(shù)據(jù)湖?如何建湖?如何ETL?

    快來搶紅包!

    字節(jié)跳動涉代碼抄襲被訴陪22.74億,連錯誤的函數(shù)都搬?

    不重啟JVM,替換掉已經(jīng)加載的類,偷天換日?

    下方二維碼關(guān)注我

    技術(shù)草根,堅持分享 編程,算法,架構(gòu)

    看完文章,餓了點外賣,點擊 ??《無門檻外賣優(yōu)惠券,每天免費領(lǐng)!》

    朋友,助攻一把!點個在看!
    瀏覽 38
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    亚洲美女做爱 | 午夜精品久久久久 | 亚洲中文字幕在线观看视频 | 91无码人妻精品一区二区三区蜜桃 | 亚洲精品人伦一区二区 |