码迷,mamicode.com
首页 > 编程语言 > 详细

java正则表达式最简单 学习教程

时间:2015-09-02 20:43:15      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

本大教程以一个验证手机号的表达式为例,学完本例后,基本上所有的表达式都能看懂了,但是如果想要达到上手就能写的程度,还需要多练习多测试 呀!

来看 这样一个代码

String mobilePhoneReg = "^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";
if (!mobilephone.matches(mobilePhoneReg)) {
showToast("手机号码格式不正确!");
return false;
}

1、字符串“13”

单从最开始的13来看,如果正则表达式的字符串是“13”,意味着匹配“13”这个字符串,如果不是“13”肯定就是matches的结果为false.

2、英文句号“.”

“.”的含义,其实可以理解为一个占位符,“1.3”表示匹配三位数,开头和结尾必须是1和3,例如“143”,“1..3”标识匹配四位数,例如“143”现在匹配的话就匹配不上了。

3、方括号“[]”

“[]”可以看作是“.”的延伸,都是一个占位符,区别只在于"[]"对元素进行了进一步的限定,例如“1[fb4]3”表示只匹配“143”、“1f3”、“1b3”这三个,如果是别的,统统就不接受了。

4、圆括号“()”

“()”相比“[]”又有所扩大,"[]"只是一个占位符,“()”则可以表示多个占位符,例如“1(abc)3”表示只匹配“1abc3”,当然你还可以用“|”来支持群组匹配的效果,例如“1(abc|2)3”表示只匹配“1abc3”或者“123”。

5、“|”

在圆括号中时候实际上已经提到了,“|”的作用就如同他在代码中的含义:或者。

6、“-”

“-”在正则表达式中可能出现在两种场景,一个单独出现“-”,一个是“\-”,两种场合的意义当然也是不同的,前者表示区间概念,比如“1[1-3]3”,表示匹配“113”、“123”、“133”,出现在括号外部当然意图就是一个纯粹的符号-,这时候要用到转义字符“\”,例如“1[\-]3”表示只匹配字符“1-3”

7、表示匹配次数系列

技术分享

值得注意的是,表示匹配次数系列的符号都是针对他们的上一个字符起效的,比如“13*”表示匹配“1....”,“13+”表示匹配“13....”,“13?”表示匹配“1”或“13”,“13{2}”表示匹配“133”,“13{2,3}”表示匹配“133”或者“1333”.

8、灭绝师太“^”

“^”表示否定含义,必须用于括号内,它在谁前面,就表示不允许谁出现了。例如“[^1]3”表示匹配除了1开头以外第二位是3的。

9、“/s”

“/s”表示一个空格,例如“/s+”表示匹配至少一个空格

java正则表达式最简单 学习教程

标签:

原文地址:http://www.cnblogs.com/gangmiangongjue/p/4779334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!