首页 > 代码库 > 正则表达式

正则表达式

1、模式匹配符

^x

以x开头

x$

x结尾

x*

匹配x  0次或n

x+

匹配x  1次或n

x?

匹配x  0次或1

.x

除换行符外单个字符

x|y

匹配x或者y

n{X,Y}

匹配包含 X Y n 的序列的字符串。

\b

匹配分界线 一个空格

\B

非分界线

\d

匹配一个数字

\D

匹配非数字

\n

换行符

\r

回车符

\s

空白符(空格、tab、换行符、form feed

\f

表单符

\v

顶头制表符

\t

制表符

\w

数字、字母、下划线

\W

除数字、字母、下划线以外字符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、初级练习

1、求非负整数:^\d+$

2、匹配正整数:^[1-9]*[1-9][0-9]*$在网上也有这种写法的^[0-9]*[1-9][0-9]*$

这里截图我也不贴了,前者指能匹配123012这种整数,而后者可以匹配001230

取舍就看实际的需要了

3、非正整数:^(-\d+|(0+))$

4、负整数:^-[0-9]*[1-9][0-9]*$

5、整数:^-?\d+$

6、非负浮点数:^\d+(\.\d+)?$

7、正浮点数:^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

8、非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$

9、负浮点数:^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

10、浮点数:^(-?\d+)(\.\d+)?$

11、有数字、26个英文字母组成的字符串:^[A-Za-z0-9]+$

 

 

中级练习

 

1、长度为8-10的用户密码(以字母开头、数字、下划线)

^[a-zA-Z]\w{7,9}$

2、验证输入只能是汉字:^[\u4e00-\u9fa5]{0,}$

3、电子邮箱验证:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

4URL地址验证:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

5、电话号码的验证:0\d{3}-\d{7}|0\d{2}-\d{8}

6、简单的身份证号验证:\d{15}|\d{18}$

 

高级练习

 

1、提取并捕获html标签内容:

<a(?:[^>]*)+href=http://www.mamicode.com/([^>]*)(?:[^>]*)*>

 技术分享

<OPTION\s.*?>

 技术分享

 

正则表达式