下面是正則表達式的一些小結。說原創有點大,呵呵只能說是在別人的基礎上在加工而已。請看下面的一些總結吧。希望對你有用。
正則表達式
(1)字符匹配:
NO | 表達式 | 描述 |
1 | \\ | 表示一個\ |
2 | 文字,字母如a | 表達式內任何不具有特殊意義的字符,與自身匹配 |
3 | [abc] | 表示abc中任何一個 |
4 | [^abc] | 表示除abc之外的任何字符 |
5 | - | -指定包括一定範圍的字符[A-Z]表示A-Z的大寫字母 |
6 | [a-zA-Z] | 表示全部有大小寫字母組成 |
7 | \d | 表示由數字組成 |
8 | \D | 表示由非數字組成 |
9 | \s | 表示由空白字符,如製表符或換行符 |
10 | \S | 非空白字符 |
11 | \w | 單子字符(a-z A-Z 0-9以及下滑線_) |
12 | \W | 非單字字符 |
(2)字符類(某些字符類僅在用於US-ASCII比較時纔有效)
NO | 表達式 | 描述 |
1 | \p{Lower} | 小寫字符 |
2 | \p{Upper} | 大寫字符 |
3 | \p{ASCII} | 所有ASCII字符 |
4 | \p{Alpha} | 字母字符(所有大小寫字母) |
5 | \p{Digit} | 從0-9的數字 |
6 | \p{Alnum} | Alpha和number字母數字字符 |
(3)出現的次數(放在正則後面)
NO | 表達式 | 描述 |
1 | ? | 表示出現一次或根本不出現 |
2 | * | 表示出現零次或一次或一次以上(含一次) |
3 | + | 表示出現一次或多次 |
4 | {n} | 剛好出現n次 |
5 | {m,} | 表示至少出現m次 |
6 | {m,n} | 出現m到n次 |
(4)關係運算
NO | 表達式 | 描述 |
1 | 正則1|正則2 | 或者正則1或者正則2 |
2 | (正則) | 表示一組規範 |
示例
密碼strPass爲六位數字 | strPass.matches("[0-9]{6}") |
用戶名strName由6-10爲數字字母下滑線組成 | strName.matches("[0-9a-zA-Z_]{6,10}") |
身份證strPerId驗證有16位數字或者17位數字和最後一位數字或者x組成 | strPerId.matches("[1-9]{1}(([0-9]{15})||([0-9]{16})([0-9]{1}||[x]{1}))") |
strEmail xxx@xxx(.com或.cn) | strEmail.matches("[0-9A-Za-z]+@[0-9a-zA-Z]+(\\.com||\\.cn)") 注意加括號 |