java正则表达式(基础篇)

1.数量表达

{n} :出现n次

{m,n}:最少出现m次,最多出现n次

*:表示出现>=0次,相当于{0,}

+:表示出现>=1次,相当于{1,}

?:表示出现1次或0次

|:左右两边正则表达式选择其一

2.字符表达

[0123456789]:相当于[0-9],表示0-9的任意一位数字

[a-z] :一位小写字母

[A-Z] :一位大写字母

[a-zA-Z] :任意一位大写或小写字母

[a-zA-Z0-9] :任意一位数字或字母

[^0-9] :任意一位非数字

 

3.预定义字符

(预定义字符的大写形式都是小写的反义)

\d:0-9的一位数字,相当于[0-9]

\D:1位非数字字符

\w:一位数字或字母或_,相当于[a-zA-Z0-9_]

\s:一位空字符,匹配任意空白字符,包括空格、制表符、换页符等等,相当于[\f\n\r\t\n]

\S:非空白字符相当于[^\f\n\r\t\n]

. :除换行回车外的任何一个字符

\n:匹配一个换行符

\r:匹配一个回车符

 

4.特殊字符

所谓特殊字符,就是一些有特殊含义的字符,如"*.txt"中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\ls \*.txt。许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符 (\) 放在它们前面。下面列出了正则表达式中的特殊字符:(请注意在方括号中,不需要转义字符。)

 

^:既可以表示否顶的意思,也表示以什么开头

[^0-9]:表示非数字

^[0-9]:表示以数字开头

\:将下一个字符标记为特殊字符或原义字符 ,'n' 匹配字符 'n'、'\n' 匹配换行符、序列 '\\' 匹配 "\"、而 '\(' 则匹配 "("

$:匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$

():标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)

[ ] :内容表示可选字符集

.表示除\n之外的任意字符(很重要)

5.正则表达式示例

手机号:^1[34578]\\d{9}$

13287612828

用户名(字母开头,数字字母组成至少6位):^[a-zA-Z]{1}[0-9A-Za-z]{5,}$

邮箱:^[0-9A-Za-z]+([-_.]\\w+)*@[0-9A-Za-z]+([-.]\\w+)*[a-z]{2,5}$

邮箱的常见表达:

1).前缀纯数字:15287@qq.com

2).前缀纯字母:zyt@163.com,zk8888@foxmail.com

3).前缀数字+字母:wangwei789@qq.com

4).前缀带点:zyt.blue@jb51.net

5).前缀带_或-:zyt_blue@jb51.net,web-blue@jb51.net

在此不多列举

身份证号:^\\d{18}$|\\d{17}(\\d|X)$

URL^((ht|f)tps?)://\\w+(.\\w+)*([\\w-.@?^=%&:/~+#]*[\\w-.@?^=%&:/~+#])?$

URL常见表达:http://yun.china-jado.com,http://127.0.0.1:8080/pipeline/login.do等

 

posted @ 2017-11-30 21:21  虾米521  阅读(225)  评论(0编辑  收藏  举报