經常使用正則表達式大全

----------------------------------------------http://tool.chinaz.com/regex/----------------------------------------------------html

1、校驗數字的表達式web

數字:^[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})?$
帶1-2位小數的正數或負數:^(\-)?\d+(\.\d{1,2})?$
正數、負數、和小數:^(\-|\+)?\d+(\.\d+)?$
有兩位小數的正實數:^[0-9]+(.[0-9]{2})?$
有1~3位小數的正實數:^[0-9]+(.[0-9]{1,3})?$
非零的正整數:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
非零的負整數:^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
非負整數:^\d+$ 或 ^[1-9]\d*|0$
非正整數:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非負浮點數:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
非正浮點數:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
正浮點數:^[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]*))$
負浮點數:^-([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]*)))$
浮點數:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
2、校驗字符的表達式正則表達式

漢字:^[\u4e00-\u9fa5]{0,}$
英文和數字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
長度爲3-20的全部字符:^.{3,20}$
由26個英文字母組成的字符串:^[A-Za-z]+$
由26個大寫英文字母組成的字符串:^[A-Z]+$
由26個小寫英文字母組成的字符串:^[a-z]+$
由數字和26個英文字母組成的字符串:^[A-Za-z0-9]+$
由數字、26個英文字母或者下劃線組成的字符串:^\w+$ 或 ^\w{3,20}$
中文、英文、數字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$
中文、英文、數字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
能夠輸入含有^%&',;=?$\」等字符:[^%&',;=?$\x22]+
禁止輸入含有~的字符:[^~\x22]+
3、特殊需求表達式express

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-./?%&=]*)?$
手機號碼:^(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}$
電話號碼(「XXX-XXXXXXX」、」XXXX-XXXXXXXX」、」XXX-XXXXXXX」、」XXX-XXXXXXXX」、」XXXXXXX」和」XXXXXXXX):^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$
國內電話號碼(0511-440522二、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
身份證號(15位、18位數字):^\d{15}|\d{18}$
短身份證號碼(數字、字母x結尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
賬號是否合法(字母開頭,容許5-16字節,容許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-zA-Z]\w{5,17}$
強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
日期格式:^\d{4}-\d{1,2}-\d{1,2}
一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
錢的輸入格式:
網絡

  • 有四種錢的表示形式咱們能夠接受:」10000.00″ 和 「10,000.00″, 和沒有 「分」 的 「10000″ 和 「10,000″:^[1-9][0-9]*$
  • 這表示任意一個不以0開頭的數字,可是,這也意味着一個字符」0″不經過,因此咱們採用下面的形式:^(0|[1-9][0-9]*)$
  • 一個0或者一個不以0開頭的數字.咱們還能夠容許開頭有一個負號:^(0|-?[1-9][0-9]*)$
  • 這表示一個0或者一個可能爲負的開頭不爲0的數字.讓用戶以0開頭好了.把負號的也去掉,由於錢總不能是負的吧.下面咱們要加的是說明可能的小數部分:^[0-9]+(.[0-9]+)?$
  • 必須說明的是,小數點後面至少應該有1位數,因此」10.」是不經過的,可是 「10″ 和 「10.2″ 是經過的:^[0-9]+(.[0-9]{2})?$
  • 這樣咱們規定小數點後面必須有兩位,若是你認爲太苛刻了,能夠這樣:^[0-9]+(.[0-9]{1,2})?$
  • 這樣就容許用戶只寫一位小數。下面咱們該考慮數字中的逗號了,咱們能夠這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
  • 1到3個數字,後面跟着任意個 逗號+3個數字,逗號成爲可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
  • 備註:這就是最終結果了,別忘了」+」能夠用」*」替代。若是你以爲空字符串也能夠接受的話(奇怪,爲何?)最後,別忘了在用函數時去掉去掉那個反斜槓,通常的錯誤都在這裏

xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
中文字符的正則表達式:[\u4e00-\u9fa5]
雙字節字符:[^\x00-\xff] (包括漢字在內,能夠用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1))
空白行的正則表達式:\n\s*\r (能夠用來刪除空白行)
HTML標記的正則表達式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (網上流傳的版本太糟糕,上面這個也僅僅能部分,對於複雜的嵌套標記依舊無能爲力)
首尾空白字符的正則表達式:^\s*|\s*$或(^\s*)|(\s*$) (能夠用來刪除行首行尾的空白字符(包括空格、製表符、換頁符等等),很是有用的表達式)
騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
中國郵政編碼:[1-9]\d{5}(?!\d) (中國郵政編碼爲6位數字)
IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址時有用)
IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))dom

 

^\d+$  //匹配非負整數(正整數 + 0)  
//匹配整數 ^\d+(\.\d+)?$  //匹配非負浮點數(正浮點數 + 0)
^(([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+)?))$  //匹配非正浮點數(負浮點數 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配負浮點數
^(-?\d+)(\.\d+)?$  //匹配浮點數
^[A-Za-z]+$ //匹配由26個英文字母組成的字符串
^[A-Z]+$  //匹配由26個英文字母的大寫組成的字符串
^[a-z]+$  //匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字符串
^\w+$  //匹配由數字、26個英文字母或者下劃線組成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url
匹配中文字符的正則表達式: [\u4e00-\u9fa5]
匹配雙字節字符(包括漢字在內):[^\x00-\xff]
匹配中文字符的正則表達式,有的語言支持直接使用中文字符,如.net中的: @"[找到]?[得到]?[約]? [0-9|0-9,]* 條結果",是匹配google搜索結果的正則表達式
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
匹配賬號是否合法(字母開頭,容許5-16字節,容許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配國內電話號碼:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$ 函數

下表是元字符及其在正則表達式上下文中的行爲的一個完整列表,具體到每一個正則表達式符號:
\ 將下一個字符標記爲一個特殊字符、或一個原義字符、或一個後向引用、或一個八進制轉義符。
^ 匹配輸入字符串的開始位置。若是設置了 RegExp 對象的Multiline 屬性,^ 也匹配 ’\n’ 或 ’\r’ 以後的位置。
$ 匹配輸入字符串的結束位置。若是設置了 RegExp 對象的Multiline 屬性,$ 也匹配 ’\n’ 或 ’\r’ 以前的位置。
* 匹配前面的子表達式零次或屢次。
+ 匹配前面的子表達式一次或屢次。+ 等價於 {1,}。
? 匹配前面的子表達式零次或一次。? 等價於 {0,1}。
{n} n 是一個非負整數,匹配肯定的n 次。
{n,} n 是一個非負整數,至少匹配n 次。
{n,m} m 和 n 均爲非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗號和兩個數之間不能有空格。
? 當該字符緊跟在任何一個其餘限制符 (*, +, ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式儘量少的匹配所搜索的字符串,而默認的貪婪模式則儘量多的匹配所搜索的字符串。
. 匹配除 "\n" 以外的任何單個字符。要匹配包括 ’\n’ 在內的任何字符,請使用象 ’[.\n]’ 的模式。
(pattern) 匹配pattern 並獲取這一匹配。 (?:pattern) 匹配pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供之後使用。 (?=pattern) 正向預查,在任何匹配 pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不須要獲取供之後使用。 (?!pattern) 負向預查,與(?=pattern)做用相反 x|y 匹配 x 或 y。
[xyz] 字符集合。
[^xyz] 負值字符集合。
[a-z] 字符範圍,匹配指定範圍內的任意字符。
[^a-z] 負值字符範圍,匹配任何不在指定範圍內的任意字符。
\b 匹配一個單詞邊界,也就是指單詞和空格間的位置。
\B 匹配非單詞邊界。
\cx 匹配由x指明的控制字符。
\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 爲十六進制轉義值。十六進制轉義值必須爲肯定的兩個數字長。
\num 匹配 num,其中num是一個正整數。對所獲取的匹配的引用。
\n 標識一個八進制轉義值或一個後向引用。若是 \n 以前至少 n 個獲取的子表達式,則 n 爲後向引用。不然,若是 n 爲八進制數字 (0-7),則 n 爲一個八進制轉義值。
\nm 標識一個八進制轉義值或一個後向引用。若是 \nm 以前至少有is preceded by at least nm 個獲取得子表達式,則 nm 爲後向引用。若是 \nm 以前至少有 n 個獲取,則 n 爲一個後跟文字 m 的後向引用。若是前面的條件都不知足,若 n 和 m 均爲八進制數字 (0-7),則 \nm 將匹配八進制轉義值 nm。 \nml 若是 n 爲八進制數字 (0-3),且 m 和 l 均爲八進制數字 (0-7),則匹配八.

二、字符串格式校驗
表達式: ^\d{3}-\d{2}-\d{4}$
描述:此正則表達式將會匹配設備號碼(美國)(SSN) ,格式爲NNN-NN-NNNN.
匹配舉例:333-22-4444 | 123-45-6789
不匹配舉例: 123456789 | SSN

表達式: ^[a-zA-Z]$
描述: 匹配任何單一的大寫或小寫字母。
匹配舉例: a | B | c
不匹配舉例: 0 | &amp; | AbC

表達式:(\w+)\s+\1
描述: 此表達式使用反向引用來尋找以空格分開的兩個單詞中出現一行中出現兩次的單詞。匹配像 'mandate dated'這樣的。
匹配舉例:hubba hubba | mandate dated | an annual
不匹配舉例: may day | gogo | 1212

表達式: ^(\d{4}[- ]){3}\d{4}|\d{16}$
描述:信用卡卡號校驗。檢查16位四組格式的,以空個或-分開的卡號,或者連在一塊兒的。.
匹配舉例:1234-1234-1234-1234 | 1234 1234 1234 1234 | 1234123412341234
不匹配舉例: Visa | 1234 | 123-1234-12345

表達式:^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$
描述:匹配主要的信用卡如: Visa (長16, 以 4開頭), Mastercard (長 16, 以 51-55), Discover (長 16, 以 6011開頭), American Express (長 15, 以 34 或 37開頭). 全部的以 16 位數字格式,能夠有或沒有(-)在四個一組的數字中間。
匹配:6011-1111-1111-1111 | 5423-1111-1111-1111 | 341111111111111
不匹配: 4111-111-111-111 | 3411-1111-1111-111 | Visa

表達式: ^\s*[a-zA-Z,\s]+\s*$
描述:任何大寫或小寫字母組成,以逗號或空格分開的文本,空格的數量不限。
匹配:Smith, Ed | Ed Smith | aBcDeFgH
不匹配: a123 | AB5 | Mr. Ed

表達式: ^\d{9}[\d|X]$
描述:一個簡單的ISBN 校驗表達式 –它僅僅校驗10位數字構成的,最後一位或許爲X的ISBN號。
匹配:1234123412 | 123412341X
不匹配:不是一個isbn

表達式:(?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$
描述:信用卡卡號校驗。
匹配:6011567812345678 | 6011 5678 1234 5678 | 6011-5678-1234-5678
不匹配: 1234567890123456

表達式: "((\\")|[^"(\\")])+"
描述:匹配以引號引發的字符串,使用斜槓的字符串。
匹配「 "test" | "escape\"quote" | "\""
不匹配: test | "test | "test\"

表達式: ^([1-zA-Z0-1@.\s]{1,255})$
描述:通用字符串校驗表達式,能夠防止用戶輸入惡意字符代碼,容許輸入email地址,姓名,地址,密碼等等。不容許輸入斜槓 *等非法字符。
匹配:email@email.com | My Name | asdf12df
不匹配: ‘,\*&amp;$&lt;&gt; | 1001' string

表達式:^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$
描述:匹配首字母大寫的以空格分開的字符串,也匹配空字符串。
匹配: Sacramento | San Francisco | San Luis Obispo
不匹配: SanFrancisco | SanLuisObispo | San francisco

表達式:(^|\s)(00[1-9]|0[1-9]0|0[1-9][1-9]|[1-6]\d{2}|7[0-6]\d|77[0-2])(-?|[\. ])([1-9]0|0[1-9]|[1-9][1-9])\3(\d{3}[1-9]|[1-9]\d{3}|\d[1-9]\d{2}|\d{2}[1-9]\d)($|\s|[;:,!\.\?])
描述: Incorporated other people's examples; removed extraneous parenthesis on 10/7/04. Currently the SSA site says 772 is the highest AREA number generated (http://www.ssa.gov/employer/highgroup.txt). Old expression was: (^|\s)\d{3}(-?|[\. ])\d{2}\2\d{4}($|\s|[;:,!\.\?]). Looks for either the beginning of a line or whitespace before the beginning of the social security number, then either zero or one hyphen OR one of a period or space, then uses the \3 to reference the value returned in the parenthesis that includes the -?|[\. ] (basically says if the first dash, period, or space is there, then the second one is required; and if the first dash, period, or space is not there, then the second one can't be either), and finally looks for the end of a line, whitespace, or punctuation characters after the social security number.
匹配:123-45-6789 | 123 45 6789 | 123456789
不匹配: 12345-67-890123 | 1234-56-7890 | 123-45-78901

表達式:&lt;[^&gt;]+&gt;
描述:這個表達式用來查找全部的開閉標記,可很好的用於HTML或XML文檔的標記清理。我用來清理HTML中的XML標記。我找出全部的標記,而後刪除那些非標準的的標記。
匹配: &lt;html&gt; | &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt; | &lt;
不匹配: Any plain old text | http://www.regexlib.com/Add.aspx | xml&gt;

表達式:^[0-9]{1,}(,[0-9]+){0,}$
描述:它能夠校驗html頁面的格式輸入(checkbox, optionbox, selectbox)等,尤爲是一次輸入多個數字值的時候,例如用戶一次選擇一個或更多的時候!
匹配: 1111 | 47,26,2,1,1111,12 | 25,1245,2122,23232
不匹配: 111, | 1a1,111,1212,23 | 11aa,aaa,asas,asa

表達式:^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*&lt;&gt;:\;|\&quot;/]+$
描述:對保留字符進行檢查,如 &lt;&gt; 和 &quot;。
匹配:abc
不匹配: PRN

表達式:^([a-z0-9]+([\-a-z0-9]*[a-z0-9]+)?\.){0,}([a-z0-9]+([\-a-z0-9]*[a-z0-9]+)?){1,63}(\.[a-z0-9]{2,7})+$
描述: [註釋:這個域名經過 Macromedia's ColdFusion MX測試.我確定它工做於其餘正則引擎時還須要額外的信息。]在找了一些正則表達式後,我發現沒有一個能夠徹底的可靠的處理子域名或者頂級域名的正則表達式。所以,我寫了一個,而後測試它。它不匹配如: -.domain.com, -a.domain.com, -domain.com, domain-.com, 以及在頂級域名前的字符數超過63個的域名。匹配: a.domain.com, a-a.domain.com, a--a.domain.com, a--defg.com, domain.co.uk.
匹配: 800-med-alert.com | jump.to | archive-3.www.regexlib.com
不匹配: example | a-.domain.com | http://regexlib.com/

表達式:^(?![0-9]{6})[0-9a-zA-Z]{6}$
描述:匹配一個六位的密碼,而且其中至少含有一個字母。
匹配:123a12 | a12345 | aaaaaa
不匹配: 111111

三、URI驗證

資源定位符
Windows文件名
表達式:
\A([A-Za-z0-9'~`!@#$%&amp;^_+={},\-
\;])+?([ A-Za-z0-9'~` !@#$%&amp;^_+={},\-
;]|([.]))*?(?(3)(([ A-Za-z0-9'~`!@#$ %&amp;^_+={},\-
\;]*?)([A-Za-z0-9'~`!@#$%&amp;^_+={},\-
;])+\z)|(\z))
匹配:
Test.txt | T est.txt | Rosco's.Test.txt
不匹配:
\Folder\Test.txt | T*est.txt | Test.

IP地址列表和地址範圍
表達式:
^(((((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])-(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]))|((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]))),)*)(((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-
匹配:
192.168.101.1 | 192.168.101.1-192.168.101.255 | 192.168.101.1-192.168.101.255,192.168.102.12
不匹配:
999.168.101.1 | 192.168.101.1- | -192.168.101.255

網址:
表達式:
(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(www\.))+(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9\&amp;%_\./-~-]*)?
匹配:
http://diskusneforum.sk | www.diskusneforum.sk | ftp://123.123.123.123/
不匹配:
diskusneforum.sk

特別域名:
^(([a-z][0-9])|([0-9][a-z])|([a-z0-9][a-z0-9\-]{1,2}[a-z0-9])|([a-z0-9][a-z0-9\-](([a-z0-9\-][a-z0-9])|([a-z0-9][a-z0-9\-]))[a-z0-9\-]*[a-z0-9]))\.(co|me|org|ltd|plc|net|sch|ac|mod|nhs|police|gov)\.uk$
匹配:
zeropanic.co.uk | z2.co.uk | 1-1.org.uk
不匹配:
zeropanic.com | z.co.uk | zz.co.uk

文件夾名:
^[^\\\/\?\*\&quot;\'\&gt;\&lt;\:\|]*$
匹配:
321321321 dasds
不匹配:
/\3fsdfsd

美圓金額:
表達式:
^(\$)?(([1-9]\d{0,2}(\,\d{3})*)|([1-9]\d*)|(0))(\.\d{2})?$
匹配:
$1,234,567.89 | 1234567.89 | $0.00
不匹配:
$1,2345,67.89 | $1234,345,678.0

超級連接:
link="(?<link>((.|\n)∗?))"
(?<text>((.|\n)*?))
\/linkoop

匹配:
[link="http://www.yahoo.com"]Yahoo[/link]
不匹配:
[link]http://www.yahoo.com[/link] | [link=http://www.yahoo.com]Yahoo[/link]

郵箱連接:
表達式:
((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)
匹配:
http://www.aspemporium.com | mailto:dominionx@hotmail.com | ftp://ftp.test.com
不匹配:
www.aspemporium.com | dominionx@hotmail.com | bloggs

長文件名校驗(Windows標準)
表達式
^[^\\\./:\*\?\"<>\|]{1}[^\\/:\*\?\"<>\|]{0,254}$
匹配:
abcd.jpg | a b239.abcd ef12983 298 | a....23498
不匹配:
.abcde.jpg | abcde?.jpg | c:\abcde.jpg

匹配全部的頂級域名(根據IANA的2007-77-14的規範)
表達式:
(a(?:[cdefgilmnoqrstuwxz]|ero|(?:rp|si)a)|b(?:[abdefghijmnorstvwyz]iz)|c(?:[acdfghiklmnoruvxyz]|at|o(?:m|op))|d[ejkmoz]|e(?:[ceghrstu]|du)|f[ijkmor]|g(?:[abdefghilmnpqrstuwy]|ov)|h[kmnrtu]|i(?:[delmnoqrst]|n(?:fo|t))|j(?:[emop]|obs)|k[eghimnprwyz]|l[abcikrstuvy]|m(?:[acdeghklmnopqrstuvwxyz]|il|obi|useum)|n(?:[acefgilopruz]|ame|et)|o(?:m|rg)|p(?:[aefghklmnrstwy]|ro)|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|t(?:[cdfghjklmnoprtvwz]|(?:rav)?el)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])
匹配:
全部的ccTLDs (Country-Code Top-Level Domains) | all gTLDs (Generic Top-Level Domains) | .arpa
不匹配:
不存在的T.L.D.s

域名
表達式:
^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
匹配:
regexlib.com | this.is.a.museum | 3com.com
不匹配:
notadomain-.com | helloworld.c | .oops.org

完整的和壓縮的IPv6地址
表達式:
^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$
匹配:
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 | 1080::8:800:200C:417A | ::FFFF:129.144.52.38
不匹配:
FEDC::7654:3210::BA98:7654:3210 | FEDC:BA98:7654:3210 | ::

網絡協議:
表達式:
(\s|\n|^)(\w+://[^\s\n]+)
匹配:
http://www.acme.com | ftp://ftp.acme.com/hede | gopher://asdfasd.asdfasdf
不匹配:
&lt;a href=&quot;http://acme.com&quot;&gt;http://www.acme.com&lt;/a&gt; | &lt;br&gt;http://www.acme.


簡單的匹配10進制IP地址,但不驗證地址
表達式:
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
匹配:
192.168.1.1 | 10.2.234.1 | 66.129.71.122
不匹配:
192.168.1 | 10.2.1234.1 | 66 129 71 122

域名或主機名
表達式:
^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$
匹配:
3SquareBand.com | asp.NET | army.mil
不匹配:
$SquareBand.com | asp/dot.Net | army.military


Windows路徑和無效UNC路徑
表達式:
^([a-zA-Z]\:) (\\{1}| ((\\{1}) [^\\] ([^/:*?&lt;&gt;&quot;|]*(?&lt;![ ])))+)$
匹配:
c:\34\445\546\3.htm | C:\
不匹配:
\\qaz | c:\Ram&lt;\ | C: or c:\\ or \\


文件擴展名
表達式:
(?!\.)[a-z]{1,4}$
匹配:
file.jpg | file.c | file.gif
不匹配:
file.34


域名地址:
^(((ht|f)tp(s?))\://)?((([a-zA-Z0-9_\-]{2,}\.)+[a-zA-Z]{2,})|((?:(?:25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)(?(\.?\d)\.)){4}))(:[a-zA-Z0-9]+)?(/[a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~]*)?$
匹配:
this.com | https://this.com:8080/this/this.htm | ftp://255.255.255.255/
不匹配:
.this.com | https://this.com:/ | ftps://255.256.255.255/


匹配URL字符串
表達式:
\b([\d\w\.\/\+\-\?\:]*)((ht|f)tp(s|)\:\/\/|[\d\d\d|\d\d]\.[\d\d\d|\d\d]\.|www\.|\.tv|\.ac|\.com|\.edu|\.gov|\.int|\.mil|\.net|\.org|\.biz|\.info|\.name|\.pro|\.museum|\.co)([\d\w\.\/\%\+\-\=\&amp;\?\:\\\&quot;\'\,\|\~\;]*)\b
匹配:
http://210.50.2.215/sd_new/WebBuilder.cgi?RegID=7449046&amp;First=Ok&amp;Upt=Ok&amp;EditPage=3&amp;S
不匹配:
Hmmmm

帶端口的IP地址
表達式:
^((?:2[0-5]{2}|1\d{2}|[1-9]\d|[1-9])\.(?:(?:2[0-5]{2}|1\d{2}|[1-9]\d|\d)\.){2}(?:2[0-5]{2}|1\d{2}|[1-9]\d|\d)):(\d|[1-9]\d|[1-9]\d{2,3}|[1-5]\d{4}|6[0-4]\d{3}|654\d{2}|655[0-2]\d|6553[0-5])$
匹配:
127.0.0.1:80 | 255.255.255.0:21 | 1.0.0.0:1
不匹配:
0.0.0.0:1 | 256.1.1.1:20 | 127.0.0.1:65536

域名
表達式:
^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$
匹配:
my.domain.com | regexlib.com | big-reg.com
不匹配:
.mydomain.com | regexlib.comm | -bigreg.com

網絡協議地址
表達式:^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*$
匹配:
http://www.blah.com/~joe | ftp://ftp.blah.co.uk:2828/blah%20blah.gif | https://blah.gov/blah-blah.as
不匹配:
www.blah.com | http://www.blah&quot;blah.com/I have spaces! | ftp://blah_underscore/[nope]

網絡地址:
(?:(?<protocol>http(?:s?)|ftp)(?:\:\/\/)) (?:(?<usrpwd>\w+\:\w+)(?:\@))? (?<domain>[^/\r\n\:]+)? (?<port>\:\d+)? (?<path>(?:\/.*)*\/)? (?<filename>.*?\.(?<ext>\w{2,4}))? (?<qrystr>\??(?:\w+\=[^\#]+)(?:\&?\w+\=\w+)*)* (?<bkmrk>\#.*)?
匹配:
https://192.168.0.2:80/users/~fname.lname/file.ext | ftp://user1:pwd@www.domain.com | http://www.dom
不匹配:
www.domain.com | user1:pwd@domain.com | 192.168.0.2/folder/file.ext

IP地址:
表達式:
(^\d{3}\x2E\d{3}\x2E\d{3}\x2D\d{2}$)
匹配:
123.123.123-12
不匹配:
123.123.103.32 | 123 123 123 12 | sa3.332.322-12

URL匹配(有無協議都可)
([\d\w-.]+?\.(a[cdefgilmnoqrstuwz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvxyz]|d[ejkmnoz]|e[ceghrst]|f[ijkmnor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eouw]|s[abcdeghijklmnortuvyz]|t[cdfghjkmnoprtvwz]|u[augkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw]|aero|arpa|biz|com|coop|edu|info|int|gov|mil|museum|name|net|org|pro)(\b|\W(?<!&|=)(?!\.\s|\.{3}).*?))(\s|$)
匹配:
http://www.website.com/index.html | www.website.com | website.com

域名匹配:
^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly| ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk| pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr| st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zr|zw|AERO|BIZ|COM|COOP|EDU|GOV|INFO|INT|MIL|MUSEUM|NAME|NET|ORG|AC|
匹配:
mydomain.com | my-domain.info | mydomain.aero
不匹配:
-mydomain.com | mydomain.aaa | .mydomain.com

文件路徑(支持空格文件名)
^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*.*))+\.(txt|TXT)$
匹配:
C:\Documents and Settings\roman.lukyanenko\Desktop\stuff\b_card2.txt
不匹配:
C:\file.doc

網址+端口:
^(((ht|f)tp(s?))\://)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&amp;%\$#\=~_\-]+))*$
匹配:
www.blah.com:8103 | www.blah.com/blah.asp?sort=ASC | www.blah.com/blah.htm#blah
不匹配:
www.state.ga | http://www.blah.ru

特別匹配:
表達式:
^DOMAIN\\\w+$
匹配:
DOMAIN\ssmith | DOMAIN\a | DOMAIN\username
不匹配:
ssmith | username | DOMAIN\

IPV4地址和端口
表達式:
^((?:2[0-5]{2}|1\d{2}|[1-9]\d|[1-9])\.(?:(?:2[0-5]{2}|1\d{2}|[1-9]\d|\d)\.){2}(?:2[0-5]{2}|1\d{2}|[1-9]\d|\d)):(\d|[1-9]\d|[1-9]\d{2,3}|[1-5]\d{4}|6[0-4]\d{3}|654\d{2}|655[0-2]\d|6553[0-5])$
匹配:
127.0.0.1:80 | 255.255.255.0:21 | 1.0.0.0:1
不匹配:
0.0.0.0:1 | 256.1.1.1:20 | 127.0.0.1:65536

URL檢查
表達式:
^(ht|f)tp(s?)\:\/\/[a-zA-Z0-9\-\._]+(\.[a-zA-Z0-9\-\._]+){2,}(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%\$#_]*)?$
匹配:
http://www.thedaddy.org | http://forum.thedaddy.org/index.html | ftp://hows.it.going_buddy/checkit/o
不匹配:
www.thedaddy.org | http://hello | ftp://check.it

jpg/JPG文件路徑匹配
表達式:
^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*.*))+\.(jpg|JPG)$
匹配:
C:\Documents and Settings\roman.lukyanenko\Desktop\stuff\b_card2.jpg | C:\b_card.jpg | \\network\fol
不匹配:
C:\file.xls

URL連接串檢查
表達式:
^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)?((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\.\,\?\'\\/\+&amp;%\$#\=~_\-@]*)*$
匹配:
http://www.sysrage.net | https://64.81.85.161/site/file.PHP?cow=moo's | ftp://user:pass@host.com:123
不匹配:
sysrage.net


文件路徑檢查
表達式:
^([a-zA-Z]\:)(\\[^\\/:*?<>"|]*(?<![ ]))*(\.[a-zA-Z]{2,6})$
匹配:
C:\di___r\fi_sysle.txt | c:\dir\filename.txt
不匹配:
c:\dir\file?name.txt

郵箱地址等檢查
表達式:
(mailto\:|(news|(ht|f)tp(s?))\://)(([^[:space:]]+)|([^[:space:]]+)( #([^#]+)#)?)
匹配:
http://www.domain.com | http://www.domain.com/index%20page.htm #linktext# | mailto://user@domai
不匹配:
&lt;a href=&quot;http://www.domain.com&quot;&gt;real html link&lt;/a&gt; | http://www.without_space_

URL串格式檢查
表達式:
^(?=[^&])(?:(?<scheme>[^:/?#]+):)?(?://(?<authority>[^/?#]*))?(?<path>[^?#]*)(?:\?(?<query>[^#]*))?(?:#(?<fragment>.*))?
匹配:
http://regexlib.com/REDetails.aspx?regexp_id=x#Details
不匹配:
&

文檔路徑
表達式:
^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$
匹配:
x:\test\testing.htm | x:\test\test#$ ing.html | \\test\testing.html
不匹配:
x:\test\test/ing.htm | x:\test\test*.htm | \\test?&lt;.htm 測試

相關文章
相關標籤/搜索