您的位置:首页 > 职场人生

黑马程序员----Java正则表达式校验邮箱和手机号码

2014-06-23 11:17 501 查看
------- android培训java培训、期待与您交流! ----------
 

好处:正则的出现,对字符串的复杂操作变得更为简单。

特点:将对字符串操作的代码用一些符号来表示。只要使用了指定符号,就可以调用底层的代码对字符串进行操作。符号的出现,简化了代码的书写。

弊端:符号的出现虽然简化了书写,但是却降低了阅读性。

其实更多是用正则解决字符串操作的问题。

 

组:用小括号标示,每定义一个小括号,就是一个组,而且有自动编号,从1开始。

只要使用组,对应的数字就是使用该组的内容。别忘了,数组要加\\。

(aaa(wwww(ccc))(eee))技巧,从左括号开始数即可。有几个左括号就是几组。

 

常见操作:

1,匹配:其实用的就是String类中的matches方法。

String reg = "[1-9][0-9]{4,14}";

boolean b = qq.matches(reg);//将正则和字符串关联对字符串进行匹配。

2,切割:其实用的就是String类中的split方法。

3,替换:其实用的就是String类中的replaceAll();

4,获取:

    1),先要将正则表达式编译成正则对象。使用的是Pattern中静态方法 compile(regex);

    2),通过Pattern对象获取Matcher对象。

Pattern用于描述正则表达式,可以对正则表达式进行解析。

而将规则操作字符串,需要从新封装到匹配器对象Matcher中。

然后使用Matcher对象的方法来操作字符串。

如何获取匹配器对象呢?

通过Pattern对象中的matcher方法。该方法可以正则规则和字符串想关联。并返回匹配器对象。

    3),使用Matcher对象中的方法即可对字符串进行各种正则操作。

 

下面是关于正则表达式的java例子:
 

package com.itheima;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CheckMobileAndEmail {
/**
* 验证邮箱地址是否正确
*
* @param email
* @return
*/
public static boolean checkEmail(String email) {
boolean flag = false;
try {
String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(email);
flag = matcher.matches();
} catch (Exception e) {
flag = false;
}

return flag;
}

/**
* 验证手机号码
*
* @param mobiles
* @return [0-9]{5,9}
*/
public static boolean isMobileNO(String mobiles) {
boolean flag = false;
try {
Pattern p = Pattern
.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
flag = m.matches();
} catch (Exception e) {
flag = false;
}
return flag;
}

public static boolean isNum(String number) {
boolean flag = false;
try {
Pattern p = Pattern.compile("^[0-9]{5}$");
Matcher m = p.matcher(number);
flag = m.matches();
} catch (Exception e) {
flag = false;
}
return flag;
}
}

如有疑问的同学,请参看:http://heimacxy.blog.163.com/blog/static/1903840442011611112028947/  或  http://www.cnblogs.com/hm-chentao
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: