正则表达式的几个应用
前几天刚学了正则表达式,真是犀利,现在来JE回顾回顾。
具体的语法到处都有就不贴在这里了,下面的链接有更加详细的说明http://www.gznc.edu.cn/yxsz/jjglxy/book/Java_api/java/util/regex/Pattern.html
几个应用的例子分析:
1手机号码匹配
^((13[0-9])|(15[^4])|(18[0,5-9]))\d{8}$
只支持3大运营商的手机号段
^$是行开始和结束的符号
这个共分为两大部分(13[0-9])|(15[^4])|(18[0,5-9])和\d{8}
(13[0-9])|(15[^4])|(18[0,5-9])是电话号码前3位的控制
13[0-9]表示130到139的3位数
15[^4,\D]表示除了154的15号段
18[0,5-9]表示180和185-189
\\d{8}是后8位数字的控制
2电话号码匹配
(^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)
(\d{2,4}[-_-—]?)?表示2到4位的数字后面接-_-—中的一个或者一个也不接,更或者前面的所有都没有
\d{3,8}([-_-—]?\d{3,8})?表示3到8位的数字后面接-_-—中的一个或者不接,后面再接3到8位的数字更或者第一部分的3到8位数字后面什么都不接
^0?1[35]\d{9}$表示0或者没有后面接13或者15再接9位数字
3非负正数
^\d+$
简单就不分析
4整数
^-?\d+$
简单不分析
5非负小数
^\d+(\.\d+)?$
简单不分析
6Email地址
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
一个或者多个单词字符或者-在这个字符中间可以有.
然后接个@xxx(.xxx)+格式的字符串
7IP地址
2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
不解释
8中文字符串
[\u4e00-\u9fa5]*
9正整数或者正小数
^([1-9][0-9]*)|0(\.\d+)?)$
10通讯录串
如:otto/13812345678,中文名字/13812345678,otto_liu/13812345678,13812345678
^((([\u4e00-\u9fa5[\d]_-[\w][\S]]+)/)?[\d]{11}[,,])*((([\u4e00-\u9fa5[\d]_-[\w][\S]]+)/)?[\d]{11})$