下面是正则表达式的一些小结。说原创有点大,呵呵只能说是在别人的基础上在加工而已。请看下面的一些总结吧。希望对你有用。

 

正则表达式

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

Alphanumber字母数字字符

 

 

(3)出现的次数(放在正则后面)

NO

表达式

描述

1

?

表示出现一次或根本不出现

2

*

表示出现零次或一次或一次以上(含一次)

3

+

表示出现一次或多次

4

{n}

刚好出现n

5

{m,}

表示至少出现m

6

{m,n}

出现mn

(4)关系运算

NO

表达式

描述

1

正则1|正则2

或者正则1或者正则2

2

(正则)

表示一组规范

示例

密码strPass为六位数字

strPass.matches("[0-9]{6}")

用户名strName6-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)")

注意加括号