下面是正则表达式的一些小结。说原创有点大,呵呵只能说是在别人的基础上在加工而已。请看下面的一些总结吧。希望对你有用。
正则表达式
(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)") 注意加括号 |