java 正则表达式验证

java1.4开始支持正则表达式,包是java.util.regex。在regex包中,包括了两个类,Pattern(模式类)和Matcher(匹配器类)。Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真正影响搜索的对象。另加一个新的例外类,PatternSyntaxException,当遇到不合法的搜索模式时,会抛出例外。

Java中的String类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式操作。

实例:验证手机号码

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

/**
 * 类名称:RegExpTest  
 * 描述:正则表达式测试  
 * 创建人:wangql  
 * 创建时间:2017-2-22
 */
public class RegExpTest {
	
	/**
	 * 方法名:测试手机号码
	 * 开发者:wangql
	 * 开发时间:2017-2-22
	 */
	public static void main(String[] args) {
        String str = "18812344321";//手机号码
        Pattern p = Pattern.compile("^(((13[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\\d{8})$");
        Matcher m = p.matcher(str);
        if(m.find()) {
            System.out.println("验证通过:"+m.group());
        }else {
        	System.out.println("手机号码有误");
        }
        	
    }

}

matches()方法下的find()和matches()方法。

find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数。

matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数字类型或其他类型,一般要用matches()。

public static void main(String[] args) {
        String str = "18812344321";
        Pattern p = Pattern.compile("^(((13[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\\d{8})$");
        Matcher m = p.matcher(str);
        boolean flag = m.matches();
        boolean flag1 = m.find();
        System.out.println(flag);
        System.out.println(flag1);
    }
执行结果

true
false
参考文章:

JAVA正则表达式,matcher.find()和 matcher.matches()的区别

JAVA 正则表达式 (超详细)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值