java中使用正则表达式的常用方式有两种:一是使用String类的matches方法;二是使用java.util.regex包下的类Pattern、Matcher。
使用方式如下:
代码语言:javascript复制package com.byron4j.hightLevel.regexp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 正则表达式demo
* @author Byron.Y.Y
*<pre>
* java.util.regex 包
* Pattern 类: 正则表达式的编译表示形式,静态方法compile可以获取一个模式实例
* Matcher 类:正则表达式匹配器,模式实例的matcher获取匹配器,匹配器的matches方法验证是否匹配正则表达式
*</pre>
*
*/
public class RegexpDemo {
public static void main(String[] args) {
System.out.println( "方式一: 是否为首位非0的11位数字:" matchStr1("18612345678"));
System.out.println( "方式二: 是否为首位非0的11位数字:" matchStr2("18612345678"));
}
/**
* 使用String#matches(regex)
* @param str
* @return
*/
static boolean matchStr1(String str){
return str.matches("^[1-9]{10}\d{1}$");
}
/**
* 校验 "首位非0的11位数字" 的匹配器
* @param str
* @return
*/
static boolean matchStr2(String str){
// 编译一个 "首位非0的11位数字" 的正则表达式的模式
Pattern p = Pattern.compile("^[1-9]{10}\d{1}$");
// 通过模式得到匹配器
Matcher m = p.matcher(str);
// 校验匹配器
return m.matches();
}
}