Java--正则表达式(六)

来源:互联网 发布:一个字的网络歌曲 编辑:程序博客网 时间:2024/06/06 04:43

java.util.regex包中Pattern类和Matcher类

Pattern类: Java中专门进行正则表达式编译的类。(一个该类的实例即代表正则表达式本身)

Matcher类:通过解释Pattern,对字符序列执行匹配操作的引擎。(用来判断是否匹配的)

public class Test{  public static void main(String[] args){     String str="010-86835215";     Pattern p = Pattern.compile( “0\\d{2}-\\d{8}” );  //1:编译     Matcher m = p.matcher(str);    //2: 得到一个Matcher对象     boolean flag=m.matches();      //3:返回匹配的结果     System.out.println("str是一个正确的电话号码?答案是:"+flag);   }}


正则表达式中的常用的元字符

 .  匹配除换行符以外的任意字符
\w  匹配字母或数字或下划线(\W 匹配其它字符)
\s  匹配任意的空白符
\d  匹配数字
\b  匹配单词的开始或结束
 ^  匹配字符串的开始
 $  匹配字符串的结束
 *  重复零次或更多次
 +  重复一次或更多次
 ?  重复零次或一次
{n} 重复n次
{n,m} 重复n到m次
[ ]   中括号表示可选


下面做一个小小的实例总结:

附测试代码如下:

package reg;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;public class RegExp {/*一般软件用到的用户输入校验用这个功能正则表达式的基本(基础)用法:       利用String类中的str.matches(reg)方法来验证输入串是否匹配给定正则表达式*/@Testpublic void Dome1() {        String str ="012-2321413";        String reg ="0\\d{2,3}-\\d{7,8}";        boolean boo = str.matches(reg);        System.out.println(boo);}@Testpublic void Dome2(){String str = "545616510145-4845154894151056-56131894165112";String reg = "0\\d{2,3}-\\d{7,8}";//创建正则工具Pattern p = Pattern.compile(reg) ;//进行匹配//用正则工具进行匹配,结果存入Macher对象中Matcher m = p.matcher(str);//发现匹配正确的"子串";while(m.find()){String re = m.group();System.out.println(re);}}}

测试结果一:

true

测试结果二:

0145-48451548056-56131894




原创粉丝点击