必備之常用正則表達(dá)式

熟練而優(yōu)雅的使用正則,對(duì)于程序員來(lái)講,實(shí)在太有意義了(即便非此類者,也是好處多多);它輔助處理復(fù)雜的文本查詢和字符串操作,不僅能用之于代碼,還能雅之于編輯器,瀏覽器,Terminal等,實(shí)在是編碼居家必備之優(yōu)技。而正則表達(dá)式,若要快速掌握也是不易,所以此文存在的意義,即匯集些常用的正則表達(dá)式,以備不時(shí)之需。

編碼常備之正則表達(dá)式

在開(kāi)篇之前,推薦幾篇??纯吹奈恼?,以及幾個(gè)正則表達(dá)式編輯器(在線測(cè)試工具):

正則表達(dá)式30分鐘入門教程
59分鐘學(xué)會(huì)正則表達(dá)式
8 Regular Expressions You Should Know

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

1,數(shù)字:

^[0-9]*$

2,n 位的數(shù)字:

^\d{n}$

3,至少 n 位的數(shù)字:

^\d{n,}$

4,m-n 位的數(shù)字:

^\d{m,n}$

5,零和非零開(kāi)頭的數(shù)字:

^(0|[1-9][0-9]*)$

6,非零開(kāi)頭的最多帶兩位小數(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í)數(shù):

^[0-9]+(.[0-9]{2})?$

10,有1~3位小數(shù)的正實(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ù)浮點(diǎn)數(shù):

^\d+(.\d+)?$ 或
^[1-9]\d.\d|0.\d[1-9]\d|0?.0+|0$

16,非正浮點(diǎn)數(shù):

^((-\d+(.\d+)?)|(0+(.0+)?))$ 或
^(-([1-9]\d.\d|0.\d[1-9]\d))|0?.0+|0$

17,正浮點(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]))$

18,負(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])))$

19,浮點(diǎn)數(shù):

^(-?\d+)(.\d+)?$ 或
^-?([1-9]\d.\d|0.\d[1-9]\d|0?.0+|0)$

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

1, 漢字:

^[\u4e00-\u9fa5]{0,}$

2, 英文和數(shù)字:

^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

3, 長(zhǎng)度為3-20的所有字符:

^.{3,20}$

4, 由26個(gè)英文字母組成的字符串:

^[A-Za-z]+$

5, 由26個(gè)大寫英文字母組成的字符串:

^[A-Z]+$

6, 由26個(gè)小寫英文字母組成的字符串:

^[a-z]+$

7, 由數(shù)字和26個(gè)英文字母組成的字符串:

^[A-Za-z0-9]+$

8, 由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串:

^\w+$ 或 ^\w{1,20}$

9, 中文、英文、數(shù)字包括下劃線:

^[\u4E00-\u9FA5A-Za-z0-9_]+$

10, 中文、英文、數(shù)字但不包括下劃線等符號(hào):

^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11, 可以輸入含有^%&',;=?$"等字符:

[^%&',;=?$\x22]+

12, 禁止輸入含有~的字符:

[^~\x22]+

13, 不以xxx(如 jeffjade )開(kāi)頭(/結(jié)尾)的字符串

^(?!jeffjade).*$
^.*?(?<!jeffjade)$

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

1, Email地址:

^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$ 或
\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}

2, 域名地址:

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

3, 手機(jī)號(hào)碼:

^(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}$

4, 身份證號(hào)(15位、18位數(shù)字):

^\d{15}|\d{18}$

5, 是否合法Url地址

// 必須包含http or https
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)

// 不必包含http or https
[-a-zA-Z0-9@:%._\\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)

6, 是否合法帳號(hào)::

// 允許3到16個(gè)字節(jié),僅包含字母或數(shù)字
^[a-zA-Z0-9]{3,16}$

// 字母開(kāi)頭,允許5-16字節(jié),允許字母數(shù)字下劃線
^[a-zA-Z][a-zA-Z0-9_]{4,15}$

7, 是否合法密碼

// 至少八個(gè)字符,至少一個(gè)字母和一個(gè)數(shù)字:
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$

// 至少八個(gè)字符,至少一個(gè)字母,一個(gè)數(shù)字和一個(gè)特殊字符:
^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$

// 最少八個(gè)字符,至少一個(gè)大寫字母,一個(gè)小寫字母和一個(gè)數(shù)字
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

// 至少八個(gè)字符,至少一個(gè)大寫字母,一個(gè)小寫字母,一個(gè)數(shù)字和一個(gè)特殊字符:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}"

// 最少八個(gè)最多十個(gè)字符,至少一個(gè)大寫字母,一個(gè)小寫字母,一個(gè)數(shù)字和一個(gè)特殊字符:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}"

未完待續(xù) ...

原文出處: 晚晴幽草軒
原文鏈接: 必備之常用正則表達(dá)式

猜你感興趣(/有用)文章:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容