1. 程式人生 > >【copy】必備之常用正則表達式 By 其他博主

【copy】必備之常用正則表達式 By 其他博主

包含 其他 意義 exp target 特殊 浮點 net 測試工具

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

編碼常備之正則表達式

在開篇之前,推薦幾篇常看看的文章,以及幾個正則表達式編輯器(在線測試工具):

正則表達式30分鐘入門教程
59分鐘學會正則表達式
8 Regular Expressions You Should Know

  • Regex-chinaz
  • Debuggex
  • PyRegex
  • Regexper
  • Regex-oschina

一、校驗數字的表達式

1,數字:

1 ^[0-9]*$

2,n 位的數字:

1 ^\d{n}$

3,至少 n 位的數字:

1 ^\d{n,}$

4,m-n 位的數字:

1 ^\d{m,n}$

5,零和非零開頭的數字:

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

6,非零開頭的最多帶兩位小數的數字:

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

7,帶1-2位小數的正數或負數:

1 ^(-)?\d+(.\d{1,2})?$

8,正數、負數、和小數:

1 ^(-|+)?\d+(.\d+)?$

9,有兩位小數的正實數:

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

10,有1~3位小數的正實數:

1 ^[0-9]+(.[0-9]{1,3})?$

11,非零的正整數:

1 ^[1-9]\d$ 或 ^([1-9][0-9]){1,3}$ 或 ^+?[1-9][0-9]*$

12,非零的負整數:

1 ^-[1-9][0-9]*$ 或 ^-[1-9]\d*$

13,非負整數:

1 ^\d+$ 或 ^[1-9]\d*|0$

14,非正整數:

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

15,非負浮點數:

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

16,非正浮點數:

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

17,正浮點數:

1 ^[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 ^-([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,浮點數:

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

二、校驗字符的表達式

1, 漢字:

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

2, 英文和數字:

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

3, 長度為3-20的所有字符:

1 ^.{3,20}$

4, 由26個英文字母組成的字符串:

1 ^[A-Za-z]+$

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

1 ^[A-Z]+$

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

1 ^[a-z]+$

7, 由數字和26個英文字母組成的字符串:

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

8, 由數字、26個英文字母或者下劃線組成的字符串:

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

9, 中文、英文、數字包括下劃線:

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

10, 中文、英文、數字但不包括下劃線等符號:

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

11, 可以輸入含有^%&’,;=?$\”等字符:

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

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

1 [^~\x22]+

13, 不以xxx(如 jeffjade )開頭(/結尾)的字符串

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

三,特殊需求表達式

1, Email地址:

1 2 ^([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, 域名地址:

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

3, 手機號碼:

1 ^(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, 身份證號(15位、18位數字):

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

5, 是否合法Url地址

1 2 3 4 5 // 必須包含http or https https?:\/\/(www\.)?[[email protected]:%._\\+~#=]{2,256}\.[a-z]{2,6}\b([[email protected]:%_\\+.~#?&//=]*) // 不必包含http or https [[email protected]:%._\\+~#=]{2,256}\.[a-z]{2,6}\b([[email protected]:%_\\+.~#?&//=]*)

6, 是否合法帳號::

1 2 3 4 5 // 允許3到16個字節,僅包含字母或數字 ^[a-zA-Z0-9]{3,16}$ // 字母開頭,允許5-16字節,允許字母數字下劃線 ^[a-zA-Z][a-zA-Z0-9_]{4,15}$

7, 是否合法密碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 至少八個字符,至少一個字母和一個數字: ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$ // 至少八個字符,至少一個字母,一個數字和一個特殊字符: ^(?=.*[A-Za-z])(?=.*\d)(?=.*[[email protected]$!%*#?&])[A-Za-z\[email protected]$!%*#?&]{8,}$ // 最少八個字符,至少一個大寫字母,一個小寫字母和一個數字 "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$" // 至少八個字符,至少一個大寫字母,一個小寫字母,一個數字和一個特殊字符: "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[[email protected]$!%*?&])[A-Za-z\[email protected]$!%*?&]{8,}" // 最少八個最多十個字符,至少一個大寫字母,一個小寫字母,一個數字和一個特殊字符: "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[[email protected]$!%*?&])[A-Za-z\[email protected]$!%*?&]{8,10}"

8, 是否合法 Img 標簽

1 <img.*\ssrc=.*?>

【copy】必備之常用正則表達式 By 其他博主