最全的正則表達式大全

  ? 很多不太懂正則的朋友,在遇到需要用正則校驗數據時,往往是在網上去找很久,結果找來的還是不很符合要求。所以我最近把開發中常用的一些正則表達式整理了一下,在這里分享一下。給自己留個底,也給朋友們做個參考。

一、校驗數字的表達式:

 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 漢字:^[\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 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[0-9]|15[0-9]|166|17[0-9]|18[0-9]|19[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 18位身份證號碼(數字、字母x結尾):^((\d{18})|([0-9x]{18})|([0-9X]{18}))$8 帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$9 密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-zA-Z]\w{5,17}$
10 強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$  
11 日期格式:^\d{4}-\d{1,2}-\d{1,2}
12 一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
13 一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$ 
14 錢的輸入格式:
15    1.有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$ 
16    2.這表示任意一個不以0開頭的數字,但是,這也意味著一個字符"0"不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$ 
17    3.一個0或者一個不以0開頭的數字.我們還可以允許開頭有一個負號:^(0|-?[1-9][0-9]*)$ 
18    4.這表示一個0或者一個可能為負的開頭不為0的數字.讓用戶以0開頭好了.把負號的也去掉,因為錢總不能是負的吧.下面我們要加的是說明可能的小數部分:^[0-9]+(.[0-9]+)?$ 
19    5.必須說明的是,小數點后面至少應該有1位數,所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$ 
20    6.這樣我們規定小數點后面必須有兩位,如果你認為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$ 
21    7.這樣就允許用戶只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$ 
22    8.1到3個數字,后面跟著任意個 逗號+3個數字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$ 
23    備注:這就是最終結果了,別忘了"+"可以用"*"替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數時去掉去掉那個反斜杠,一般的錯誤都在這里
24 xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
25 中文字符的正則表達式:[\u4e00-\u9fa5]
26 雙字節字符:[^\x00-\xff]    (包括漢字在內,可以用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1))
27 空白行的正則表達式:\n\s*\r    (可以用來刪除空白行)
28 HTML標記的正則表達式:<(\S*?)[^>]*>.*?</\1>|<.*? />    (網上流傳的版本太糟糕,上面這個也僅僅能部分,對于復雜的嵌套標記依舊無能為力)
29 首尾空白字符的正則表達式:^\s*|\s*$(^\s*)|(\s*$)    (可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式)
30 騰訊QQ號:[1-9][0-9]{4,}    (騰訊QQ號從10000開始)
31 中國郵政編碼:[1-9]\d{5}(?!\d)    (中國郵政編碼為6位數字)
32 IP地址:\d+\.\d+\.\d+\.\d+    (提取IP地址時有用)
33 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))  

?

本文轉載來自:作者:zxin出處:http://zxin.cnblogs.com/

轉載于:https://www.cnblogs.com/tg666/p/9270369.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279968.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于移動應用APP數據安全的一點見解

2019獨角獸企業重金招聘Python工程師標準>>> 項目溝通中過程客戶反復在強調&#xff0c;大數據的安全性&#xff0c; 言下之意&#xff0c;用了大數據&#xff0c;就不安全了&#xff0c;就有漏洞了。所以花了些時間&#xff0c;針對大數據的安全設計做了一個總結&a…

2022年底C# 解壓zip文件遇到的一個Bug

本文由網友投稿。作者&#xff1a;江湖人士原文標題&#xff1a;2022年底C# 解壓zip文件遇到的一個bug原文鏈接&#xff1a;https://jhrs.com/2022/46060.html最近在排查一個上傳功能時&#xff0c;客戶端上傳的是zip文件&#xff0c;到服務器端后使用C# 解壓zip文件的代碼將上…

如何關閉mcafee軟件_如何擺脫McAfee的通知和捆綁軟件

如何關閉mcafee軟件McAfee, like most other modern antivirus programs, doesn’t stay out of your way. It installs browser extensions and shows various alert messages you might not want to see. If McAfee came with your PC, you may regularly see messages that …

mfs使用指引

客戶端工具集 mfsgetgoal #設定副本數mfssetgoal #獲取副本數mfscopygoal # mfsgetsclass mfssetsclass mfscopysclass mfsxchgsclass mfslistsclass mfsgettrashtime #設定回收站時間 mfssettrashtime #設定回收站時間 mfscopytrashtime mfsgeteattr #設置權限 mfsseteattr…

【命名規范】.NET中的枚舉類型,要以Enum結尾嗎?

“首先要給它一個名字&#xff0c;然后你才能描述它。”圖片&#xff1a;北京的晚霞 攝影師&#xff1a;劉先生這個話題源于公司《.NET技術規范》中的一條&#xff1a;【強制】枚舉聲明應以Enum結尾我對此并不認同&#xff1a;首先&#xff0c;引用一下微軟官方文檔中&#xff…

Linux中防火墻(一)

一&#xff1a;前言防火墻&#xff0c;其實說白了講&#xff0c;就是用于實現Linux下訪問控制的功能&#xff0c;它分為硬件的或者軟件的防火墻兩種。無論是在哪個網絡中&#xff0c;防火墻工作的地方一定是在網絡的邊緣。而我們的任務就是需要去定義到底防火墻如何工作&#x…

macos安全性偏好設置_如何更改macOS系統偏好設置的布局

macos安全性偏好設置If you don’t care for the way the System Preferences appear in macOS, you can change them by hiding certain preference panels or by rearranging them alphabetically. 如果您不喜歡系統偏好設置在macOS中的顯示方式&#xff0c;則可以通過隱藏某…

機器視覺技術在表面缺陷檢測方面的發展趨勢

導讀&#xff1a;機器視覺技術在表面缺陷檢測方面的發展趨勢如何&#xff1f;很多人都不了解&#xff0c;據悉&#xff0c;目前工業中應用的機器視覺檢測絕大部分執行的是二維檢測任務&#xff0c;三維機器視覺檢測仍處于理論研究和試驗階段。除此之外&#xff0c;機器視覺檢測…

J.U.C之AQS

AQS是J.U.C的核心 AQS(AbstractQueuedSynchronizer)隊列同步器&#xff0c;AQS是JDK下提供的一套用于實現基于FIFO等待隊列的阻塞鎖和相關的同步器的一個同步框架。 同步器面向的是鎖的實現者&#xff0c;它簡化了鎖的實現方式&#xff0c;屏蔽了同步狀態管理、線程的排隊、等待…

.NET周報【12月第3期 2022-12-23】

由于眾所周知的原因&#xff0c;大佬們紛紛加入羊群&#xff0c;筆者也未能幸免&#xff0c;體驗下來這絕對不是普通感冒的癥狀&#xff0c;身體不適&#xff0c;熬了幾天&#xff0c;所以本周更新比較晚&#xff1b;另外精力有限&#xff0c;對于國際板塊只有鏈接沒有簡介&…

亞馬遜的vps多少錢一個月_如何查看您在亞馬遜上花了多少錢

亞馬遜的vps多少錢一個月Have you ever wondered how much you’ve spent at Amazon during your lifetime? Whether you’re feeling curious or just plain brave, there’s an easy way to find out. 您是否想過一生在亞馬遜上花了多少錢&#xff1f; 無論您是好奇還是勇敢…

JavaScript-client、offset、scroll、定時器

client offset scroll client、offset、scroll系列 他們的作用主要與計算盒模型&#xff0c;盒子的偏移量和滾動有關 clientTop 內容區域到邊框頂部的距離&#xff0c; 說白了&#xff0c; 就是邊框的高度 clientLeft 內容區域到邊框左部的距離&#xff0c; 說白了&#xff0…

Java 五大原則

1、單一職責 不論是在設計類&#xff0c;接口還是方法&#xff0c;單一職責都會處處體現&#xff0c;單一職責的定義&#xff1a;我們把職責定義為系統變化的原因。所有在定義類&#xff0c;接口&#xff0c;方法的時候。定義完以后再去想一想是不能多于一個的動機去改變這個類…

馬化騰發飆:很多業務該砍就砍,一批員工要被裁了

最近騰訊內部會議&#xff0c;馬化騰內部講話&#xff0c;頻頻上了熱搜。在會議中&#xff0c;馬化騰難得發飆表示&#xff1a;很多不盈利的業務該砍就砍。從網絡新聞報道來看&#xff0c;可能超過40個業務即將關掉&#xff0c;甚至包括幻核、QQ影音、看點快報、搜狗地圖、騰訊…

在ASP.Net和IIS中刪除不必要的HTTP響應頭

引入 每次當瀏覽器向Web服務器發起一個請求的時&#xff0c;都會伴隨著一些HTTP頭的發送.而這些HTTP頭是用于給Web服務器提供一些額外信息以便于處理請求。比如說吧。如果瀏覽器支持壓縮功能&#xff0c;則瀏覽器會發送Accept-Encoding HTTP頭&#xff0c;這樣一來服務器便知道…

SAP Customer Data Cloud(Gigya)的用戶搜索實現

我在Gigya前臺根據email搜索&#xff0c;輸入一個郵箱地址&#xff0c;回車&#xff0c;在Chrome開發者工具里觀察到到后臺的網絡請求&#xff1a; 這是一個post請求&#xff1a; __RequestVerificationToken 請求體&#xff1a; {"query":"SELECT * FROM accou…

C# ComboBox枚舉量綁定的 兩種方法

概述ComboBox綁定枚舉量的方法有很多&#xff0c;今天列舉比較常用的兩種&#xff0c;希望對讀者們一些幫助&#xff01;代碼講解前臺XMAL:<StackPanel><ComboBox Name"EvenType1" SelectedIndex"0" Margin"5"/><ComboBox Name&…

springboot + mybatis + gradle項目構建過程

1.從Spring boot官網根據需求下載腳手架或者到GitHub上去搜索對應的腳手架項目,D_iao ^0^ ? 文件目錄如下&#xff08;此處generatorConfig.xml 和 log4j2.xml文件請忽略&#xff0c;后續會講解&#xff09; 2.使用Mybatis代碼自動構建插件生成代碼 ? gradle 相關配置 // My…

基于間隔推送全量更新數據狀態的設計方法

2019獨角獸企業重金招聘Python工程師標準>>> 假如有個直播間&#xff0c;在數據有更新的時候&#xff0c;能及時反映在客戶端上。通信方式來說&#xff0c;有兩種&#xff1a; 1、拉取模式。 2、推送拉取模式&#xff08;或者純推送&#xff09; 拉取模式&#xff0…

Redis 哈希(Hash)

哈希hash又稱為散列、雜湊等&#xff0c;是將任意長度的輸入通過散列算法變換為固定長度的輸出&#xff0c;最終輸出也就是哈希值。這種轉換是一種壓縮映射。也就是說&#xff0c;散列值的空間通常要遠小于輸入控件&#xff0c;不同的輸入可能會散列成相同的輸出&#xff0c;所…