目前,正則表達(dá)式已經(jīng)在很多軟件中得到廣泛的應(yīng)用,包括*nix(Linux, Unix等),HP等操作系統(tǒng),PHP,C#,Java等開發(fā)環(huán)境,以及很多的應(yīng)用軟件中,都可以看到正則表達(dá)式的影子。
正則表達(dá)式的使用,可以通過簡(jiǎn)單的辦法來實(shí)現(xiàn)強(qiáng)大的功能。為了簡(jiǎn)單有效而又不失強(qiáng)大,造成了正則表達(dá)式代碼的難度較大,學(xué)習(xí)起來也不是很容易,所以需要付出一些努力才行,入門之后參照一定的參考,使用起來還是比較簡(jiǎn)單有效的。
正則表達(dá)式可以:
1. 測(cè)試字符串的某個(gè)模式,例如可以對(duì)一個(gè)輸入字符串進(jìn)行測(cè)試,看該字符串是否存在一個(gè)電話號(hào)碼的模式,這稱為數(shù)據(jù)有效性驗(yàn)證
2. 替換文本,可以在文檔中使用一個(gè)正則表達(dá)式來標(biāo)識(shí)特定文字,然后可以全部將其刪除,或者替換為別的文字
3. 根據(jù)模式匹配從字符串中提取一個(gè)子字符串,可以用來在文本或輸入字段中查找特定文字
正則表達(dá)式的常用字符及其含義
正則表達(dá)式字符 |
描述 |
[……] |
匹配括號(hào)中的任何一個(gè)字符 |
[^……] |
匹配不在括號(hào)中的任何一個(gè)字符(^為取反符) |
/w |
匹配任何一個(gè)字符(a~z、A~Z和0~9) |
/W |
匹配任何一個(gè)空白字符 |
/s |
匹配任何一個(gè)非空白字符 |
/S |
與任何非單詞字符匹配 |
/d |
匹配任何一個(gè)數(shù)字(0~9) |
/D |
匹配任何一個(gè)非數(shù)字(^0~9) |
[/b] |
匹配一個(gè)退格鍵字母 |
{n,m} |
最少匹配前面表達(dá)式n次,最大為m次(n-m次數(shù)范圍) |
{n,} |
最少匹配前面表達(dá)式n次(上限不定) |
{n} |
恰恰匹配前面表達(dá)式為n次 |
? |
匹配前面表達(dá)式0或1次,即{0,1} |
+ |
至少匹配前面表達(dá)式1次,即{1,} |
* |
至少匹配前面表達(dá)式0次,即{0,} |
| |
匹配前面表達(dá)式或后面表達(dá)式(邏輯或) |
(…) |
在單元中組合項(xiàng)目 |
^ |
匹配字符串的開頭 |
$ |
匹配字符串的結(jié)尾 |
/b |
匹配字符邊界 |
/B |
匹配非字符邊界的某個(gè)位置 |
幾個(gè)常用的正則表達(dá)式
- /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*: 驗(yàn)證電子郵件:
- HTTP:///S+/./S+: 驗(yàn)證網(wǎng)址:
- /d{6}: 驗(yàn)證郵政編碼:
- [0-9]: 表示0~9十個(gè)數(shù)字。
- /d*: 表示任意個(gè)數(shù)字。
- /d{3,4}-/d{7,8}: 表示中國(guó)大陸的固定電話號(hào)碼。
- /d{2}-/d{5}: 驗(yàn)證由兩位數(shù)字、一個(gè)連字符再加5位數(shù)字組成的ID號(hào)。
- </s*(/S+)(/s[^>]*)?>[/s/S]*</s*///l/s*>: 匹配HTML標(biāo)記。
- /d{17}[/d|X]|/d{15}: 身份證
字符描述:
/:將下一個(gè)字符標(biāo)記為特殊字符或字面值。例如"n"與字符"n"匹配。"/n"與換行符匹配。序列"http://"與"/"匹配,"/("與"("匹配。
^ :匹配輸入的開始位置。
$ :匹配輸入的結(jié)尾。
* :匹配前一個(gè)字符零次或幾次。例如,"zo*"可以匹配"zo"、"zoo"。
+ :匹配前一個(gè)字符一次或多次。例如,"zo+"可以匹配"zoo",但不匹配"z"。
? :匹配前一個(gè)字符零次或一次。例如,"n?ve?"可以匹配"never"中的"ve"。
.:匹配換行符以外的任何字符。
(pattern) 與模式匹配并記住匹配。匹配的子字符串可以從作為結(jié)果的
Matches 集合中使用 Item [0]...[n]取得。如果要匹配括號(hào)字符(和 ),可使用"/(" 或 "/)"。
x|y:匹配 x 或 y。例如 "z|food" 可匹配 "z" 或 "food"。"(z|f)ood" 匹配 "zood" 或 "food"。
{n}:n 為非負(fù)的整數(shù),匹配恰好n次。例如,"o{2}" 不能與 "Bob 中的 "o" 匹配,但是可以與"foooood"中的前兩個(gè)o匹配。
{n,} :n 為非負(fù)的整數(shù),匹配至少n次。例如,"o{2,}"匹配"foooood"中所有的o,"o{1,}"等價(jià)于"o+";"o{0,}"等價(jià)于"o*"。
{n,m} :m 和 n 為非負(fù)的整數(shù)。匹配至少 n 次,至多 m 次。例如,"o{1,3}" 匹配 "fooooood"中前三個(gè)o,"o{0,1}"等價(jià)于"o?"。
[xyz] :一個(gè)字符集,與括號(hào)中字符的其中之一匹配。例如,"[abc]" 匹配"plain"中的"a"。
[^xyz] :一個(gè)否定的字符集,匹配不在此括號(hào)中的任何字符。例如,"[^abc]" 可以匹配"plain"中的"p".
[a-z] :表示某個(gè)范圍內(nèi)的字符,與指定區(qū)間內(nèi)的任何字符匹配。例如,"[a-z]"匹配"a"與"z"之間的任何一個(gè)小寫字母字符。
[^m-z] :否定的字符區(qū)間,與不在指定區(qū)間內(nèi)的字符匹配。例如,"[m-z]"與不在"m"到"z"之間的任何字符匹配。
/b :與單詞的邊界匹配,即單詞與空格之間的位置。例如,"er/b" 與"never"中的"er"匹配,但是不匹配"verb"中的"er"。
/B :與非單詞邊界匹配,"ea*r/B"與"never early"中的"ear"匹配。
/d :與一個(gè)數(shù)字字符匹配,等價(jià)于[0-9]。
/D :與非數(shù)字的字符匹配,等價(jià)于[^0-9]。
/f :與分頁符匹配。
/n :與換行符字符匹配。
/r :與回車字符匹配。
/s :與任何白字符匹配,包括空格、制表符、分頁符等。等價(jià)于"[ /f/n/r/t/v]"。
/S :與任何非空白的字符匹配,等價(jià)于"[^ /f/n/r/t/v]"。
/t :與制表符匹配。
/v :與垂直制表符匹配。
/w :與任何單詞字符匹配,包括下劃線。等價(jià)于"[A-Za-z0-9_]"。
/W :與任何非單詞字符匹配,等價(jià)于"[^A-Za-z0-9_]"。
/num :匹配 num個(gè),其中 num 為一個(gè)正整數(shù),引用回到記住的匹配。例如,"(.)/1"匹配兩個(gè)連續(xù)的相同的字符。
/n:匹配 n,其中n 是一個(gè)八進(jìn)制換碼值。八進(jìn)制換碼值必須是 1, 2 或 3 個(gè)數(shù)字長(zhǎng)。
例如,"/11" 和 "/011" 都與一個(gè)制表符匹配。"/0011"等價(jià)于"/001" 與 "1"。八進(jìn)制換碼值不得超過 256。否則,只有前兩個(gè)字符被視為表達(dá)式的一部分。允許在正則表達(dá)式中使用ASCII碼。
/xn:匹配n,其中n是一個(gè)十六進(jìn)制的換碼值。十六進(jìn)制換碼值必須恰好為兩個(gè)數(shù)字長(zhǎng)。例如,"/x41"匹配"A"。"/x041"等價(jià)于"/x04" 和 "1"。允許在正則表達(dá)式中使用 ASCII 碼。
好了,現(xiàn)在我們就舉個(gè)例子來說明正則表達(dá)式的使用,以驗(yàn)證郵件。例如我們輸入:
test@yesky.com
,當(dāng)然我也會(huì)這樣輸入:
xxx@yyy.com.cn
;但是這樣的則是非法,如:
xxx@@com.cn
或者@xxx.com.cn,等等,所以我們得歸納出合法的電子郵件地址應(yīng)滿足的條件:
1. 必須包含一個(gè)并且只有一個(gè)符號(hào)“@”
2. 第一個(gè)字符不得是“@”或者“.”
3. 不允許出現(xiàn)“@.”或者.@
4. 結(jié)尾不得是字符“@”或者“.”
根據(jù)以上的原則,我們就可以得到如下的模板:
"^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$"
接著,我們對(duì)其改進(jìn),可以得到這樣的模板格式:" /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*"
正則表達(dá)式的常見用法
"^/d+$" :非負(fù)整數(shù)(正整數(shù) + 0)
"^[0-9]*[1-9][0-9]*$" :正整數(shù)
"^((-/d+)|(0+))$" : 非正整數(shù)(負(fù)整數(shù) + 0)
"^-[0-9]*[1-9][0-9]*$" :負(fù)整數(shù)
"^-?/d+$" : 整數(shù)
"^/d+(/./d+)?$" : 非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
"^(([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+)?)|(0+(/.0+)?))$" : 非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
"^(-(([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ù)
"^(-?/d+)(/./d+)?$" : 浮點(diǎn)數(shù)
"^[A-Za-z]+$" : 由26個(gè)英文字母組成的字符串
"^[A-Z]+$" : 由26個(gè)英文字母的大寫組成的字符串
"^[a-z]+$" : 由26個(gè)英文字母的小寫組成的字符串
"^[A-Za-z0-9]+$" : 由數(shù)字和26個(gè)英文字母組成的字符串
"^/w+$" : 由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串
"^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$" : email地址
"^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$" : url
只能輸入1個(gè)數(shù)字 | |
表達(dá)式 | ^/d$ |
描述 | 匹配一個(gè)數(shù)字(^起始符,$結(jié)束符,下同) |
匹配的例子 | 0,1,2,3 |
不匹配的例子 |
![]() |
只能輸入n個(gè)數(shù)字 | |
表達(dá)式 | ^/d{n}$ 例如^/d{8}$ |
描述 | 匹配8個(gè)數(shù)字 |
匹配的例子 | 12345678,22223334,12344321 |
不匹配的例子 |
![]() |
只能輸入至少n個(gè)數(shù)字 | |
表達(dá)式 | ^/d{n,}$ 例如^/d{8,}$ |
描述 | 匹配最少n個(gè)數(shù)字 |
匹配的例子 | 12345678,123456789,12344321 |
不匹配的例子 |
![]() |
只能輸入m到n個(gè)數(shù)字 | |
表達(dá)式 | ^/d{m,n}$ 例如^/d{7,8}$ |
描述 | 匹配m到n個(gè)數(shù)字 |
匹配的例子 | 12345678,1234567 |
不匹配的例子 | 123456,123456789 |
只能輸入數(shù)字 | |
表達(dá)式 | ^[0-9]*$ |
描述 | 匹配任意個(gè)數(shù)字 |
匹配的例子 | 12345678,1234567 |
不匹配的例子 | E,清清月兒,http://blog.csdn.net/21aspnet |
只能輸入某個(gè)區(qū)間數(shù)字 | |
表達(dá)式 | ^[12-15]$ |
描述 | 匹配某個(gè)區(qū)間的數(shù)字 |
匹配的例子 | 12,13,14,15 |
不匹配的例子 |
![]() |
只能輸入0和非0打頭的數(shù)字 | |
表達(dá)式 | ^(0|[1-9][0-9]*)$ |
描述 | 可以為0,第一個(gè)數(shù)字不能為0,數(shù)字中可以有0 |
匹配的例子 | 12,10,101,100 |
不匹配的例子 | 01,清清月兒,http://blog.csdn.net/21aspnet |
只能輸入實(shí)數(shù) | |
表達(dá)式 | ^[-+]?/d+(/./d+)?$ |
描述 | 匹配實(shí)數(shù) |
匹配的例子 | 18,+3.14,-9.90 |
不匹配的例子 | .6,33s,67-99 |
只能輸入n位小數(shù)的正實(shí)數(shù) | |
表達(dá)式 | ^[0-9]+(.[0-9]{n})?$以^[0-9]+(.[0-9]{2})?$為例 |
描述 | 匹配n位小數(shù)的正實(shí)數(shù) |
匹配的例子 | 2.22 |
不匹配的例子 | 2.222,-2.22,http://blog.csdn.net/21aspnet |
只能輸入m-n位小數(shù)的正實(shí)數(shù) | |
表達(dá)式 | ^[0-9]+(.[0-9]{m,n})?$以^[0-9]+(.[0-9]{1,2})?$為例 |
描述 | 匹配m到n位小數(shù)的正實(shí)數(shù) |
匹配的例子 | 2.22,2.2 |
不匹配的例子 | 2.222,-2.2222,http://blog.csdn.net/21aspnet |
只能輸入非0的正整數(shù) | |
表達(dá)式 | ^/+?[1-9][0-9]*$ |
描述 | 匹配非0的正整數(shù) |
匹配的例子 | 2,23,234 |
不匹配的例子 |
0,-4,
![]() |
只能輸入非0的負(fù)整數(shù) | |
表達(dá)式 | ^/-[1-9][0-9]*$ |
描述 | 匹配非0的負(fù)整數(shù) |
匹配的例子 | -2,-23,-234 |
不匹配的例子 |
0,4,
![]() |
只能輸入n個(gè)字符 | |
表達(dá)式 | ^.{n}$ 以^.{4}$為例 |
描述 | 匹配n個(gè)字符,注意漢字只算1個(gè)字符 |
匹配的例子 | 1234,12we,123清,清清月兒 |
不匹配的例子 | 0,123,123www,http://blog.csdn.net/21aspnet/ |
只能輸入英文字符 | |
表達(dá)式 | ^.[A-Za-z]+$為例 |
描述 | 匹配英文字符,大小寫任意 |
匹配的例子 | Asp,WWW, |
不匹配的例子 | 0,123,123www,http://blog.csdn.net/21aspnet/ |
只能輸入大寫英文字符 | |
表達(dá)式 | ^.[A-Z]+$為例 |
描述 | 匹配英文大寫字符 |
匹配的例子 | NET,WWW, |
不匹配的例子 |
0,123,123www,
![]() |
只能輸入小寫英文字符 | |
表達(dá)式 | ^.[a-z]+$為例 |
描述 | 匹配英文大寫字符 |
匹配的例子 | asp,csdn |
不匹配的例子 |
0,NET,WWW,
![]() |
只能輸入英文字符+數(shù)字 | |
表達(dá)式 | ^.[A-Za-z0-9]+$為例 |
描述 | 匹配英文字符+數(shù)字 |
匹配的例子 | 1Asp,W1W1W, |
不匹配的例子 | 0,123,123,www,http://blog.csdn.net/21aspnet/ |
只能輸入英文字符/數(shù)字/下劃線 | |
表達(dá)式 | ^/w+$為例 |
描述 | 匹配英文字符或數(shù)字或下劃線 |
匹配的例子 | 1Asp,WWW,12,1_w |
不匹配的例子 | 3#,2-4,w#$,http://blog.csdn.net/21aspnet/ |
密碼舉例 | |
表達(dá)式 | ^.[a-zA-Z] /w{m,n}$ |
描述 | 匹配英文字符開頭的m-n位字符且只能數(shù)字字母或下劃線 |
匹配的例子 | |
不匹配的例子 |
驗(yàn)證首字母大寫 | |
表達(dá)式 | /b[^/Wa-z0-9_][^/WA-Z0-9_]*/b |
描述 | 首字母只能大寫 |
匹配的例子 | Asp,Net |
不匹配的例子 | http://blog.csdn.net/21aspnet/ |
驗(yàn)證網(wǎng)址(帶?id=中文)VS.NET2005無此功能 | |
表達(dá)式 |
^http:////([/w-]+(/.[/w-]+)+(//[/w- .///?%&=/u4e00-/u9fa5]*)?)?$ |
描述 | 驗(yàn)證帶?id=中文 |
匹配的例子 |
http://blog.csdn.net/21aspnet/
,
http://blog.csdn.net?id=清清月兒 |
不匹配的例子 |
驗(yàn)證漢字 | |
表達(dá)式 | ^[/u4e00-/u9fa5]{0,}$ |
描述 | 只能漢字 |
匹配的例子 | 清清月兒 |
不匹配的例子 | http://blog.csdn.net/21aspnet/ |
驗(yàn)證QQ號(hào) | |
表達(dá)式 | [0-9]{5,9} |
描述 | 5-9位的QQ號(hào) |
匹配的例子 | 10000,123456 |
不匹配的例子 | 10000w,http://blog.csdn.net/21aspnet/ |
驗(yàn)證電子郵件(驗(yàn)證MSN號(hào)一樣) | |
表達(dá)式 | /w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* |
描述 | 注意MSN用非hotmail.com郵箱也可以 |
匹配的例子 | aaa@msn.com |
不匹配的例子 | 111@1. http://blog.csdn.net/21aspnet/ |
驗(yàn)證身份證號(hào)(粗驗(yàn),最好服務(wù)器端調(diào)類庫再細(xì)驗(yàn)證) | |
表達(dá)式 | ^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$ |
描述 | |
匹配的例子 | 15或者18位的身份證號(hào),支持帶X的 |
不匹配的例子 | http://blog.csdn.net/21aspnet/ |
驗(yàn)證手機(jī)號(hào)(包含159,不包含小靈通) | |
表達(dá)式 | ^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8} |
描述 | 包含159的手機(jī)號(hào)130-139 |
匹配的例子 | 139XXXXXXXX |
不匹配的例子 | 140XXXXXXXX, http://blog.csdn.net/21aspnet/ |
驗(yàn)證電話號(hào)碼號(hào)(很復(fù)雜,VS.NET2005給的是錯(cuò)的) | |
表達(dá)式 (不完美 ) |
方案一 ((/(/d{3}/)|/d{3}-)|(/(/d{4}/)|/d{4}-))?(/d{8}|/d{7})
方案二 (^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$) 支持手機(jī)號(hào)但也不完美 |
描述 |
上海:02112345678 3+8位
|
匹配的例子 | |
不匹配的例子 |
驗(yàn)證護(hù)照 | |
表達(dá)式 |
(P/d{7})|G/d{8}) |
描述 | 驗(yàn)證P+7個(gè)數(shù)字和G+8個(gè)數(shù)字 |
匹配的例子 | |
不匹配的例子 | 清清月兒, http://blog.csdn.net/21aspnet/ |
驗(yàn)證IP | |
表達(dá)式 |
^(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])$ |
描述 | 驗(yàn)證IP |
匹配的例子 | 192.168.0.1 222.234.1.4 |
不匹配的例子 |
![]() |
驗(yàn)證域 | |
表達(dá)式 |
^[a-zA-Z0-9]+([a-zA-Z0-9/-/.]+)?/.(com|org|net|cn|com.cn|edu.cn|grv.cn|)$ |
描述 | 驗(yàn)證域 |
匹配的例子 | csdn.net baidu.com it.com.cn |
不匹配的例子 |
192.168.0.1
![]() |
驗(yàn)證信用卡 | |
表達(dá)式 |
^((?: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})$ |
描述 | 驗(yàn)證VISA卡,萬事達(dá)卡,Discover卡,美國(guó)運(yùn)通卡 |
匹配的例子 | |
不匹配的例子 |
![]() |
驗(yàn)證ISBN 國(guó)際標(biāo)準(zhǔn)書號(hào) | |
表達(dá)式 |
^(/d[- ]*){9}[/dxX]$ |
描述 | 驗(yàn)證ISBN 國(guó)際標(biāo)準(zhǔn)書號(hào) |
匹配的例子 | 7-111-19947-2 |
不匹配的例子 |
![]() |
驗(yàn)證GUID 全球唯一標(biāo)識(shí)符 | |
表達(dá)式 |
^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$ |
描述 | 格式8-4-4-4-12 |
匹配的例子 | 2064d355-c0b9-41d8-9ef7-9d8b26524751 |
不匹配的例子 |
![]() |
驗(yàn)證文件路徑和擴(kuò)展名 | |
表達(dá)式 |
^([a-zA-Z]/:|//)//([^//]+//)*[^//:*?"<>|]+/.txt(l)?$ |
描述 | 檢查路徑和文件擴(kuò)展名 |
匹配的例子 | E:/mo.txt |
不匹配的例子 | E:/ , mo.doc, E:/mo.doc , http://blog.csdn.net/21aspnet/ |
驗(yàn)證Html顏色值 | |
表達(dá)式 |
^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$ |
描述 | 檢查顏色取值 |
匹配的例子 | #FF0000 |
不匹配的例子 | http://blog.csdn.net/21aspnet |
郵件地址最基本的格式可以看作是 <用戶名@域名>。對(duì)于用戶名,各個(gè)ISP沒有統(tǒng)一的標(biāo)準(zhǔn),除了數(shù)字和字母外,有的允許有<_>,有的允許有<.>,也有的兩者皆可,或者允許其他的特殊字符。對(duì)此我們只能根據(jù)具體的情況加以判斷。
文中假設(shè)除字母和數(shù)字外還允許<.><_>,<.><_>不能出現(xiàn)在首末位,<.><_>不能相連。域名中各段除數(shù)字和字母外只允許出現(xiàn)<->,且<->不能出現(xiàn)在首位和末位,各段用<.>連接。我們還可從域名得知最后一段大于一位且只有字母。
下面我們就可以依據(jù)以上假設(shè)寫出如下表達(dá)式來判斷是否該串是一個(gè)郵件地址:
^([a-z0-9A-Z]+[-|/.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?/.)+[a-zA-Z]{2,}$
稍作解釋:
^:匹配開始
([a-z0-9A-Z]+[-|/.]?)+:數(shù)字或字母>1位 + <->或<.>,以上組合重復(fù)1次以上
[a-z0-9A-Z]:用戶名以數(shù)字或字母結(jié)尾
@:匹配<@>
(
[a-z0-9A-Z]+:匹配多位數(shù)字或字母
(-[a-z0-9A-Z]+)?:匹配 -加多位數(shù)字或字母 0次或1次
/.:匹配<.>
)+:匹配括號(hào)中內(nèi)容多次
[a-zA-Z]{2,}:匹配字母2次以上
$:匹配結(jié)尾
在網(wǎng)上搜集并學(xué)習(xí)了多個(gè)較為經(jīng)典的正則表達(dá)式資料版本后,總結(jié)了此篇學(xué)習(xí)心得,其中難免有不當(dāng)或錯(cuò)誤之處,還請(qǐng)各位多多斧正和指點(diǎn)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
