黑马程序员 java基础之正则表达式


正则表达式:


 正则表达式:符合一定规则的表达式
 作用:用于专门操作字符串
 特点:用于一些特定的符号来表示一些代码操作,着样简化书写。
 所以学习正则表达式,就是在学习一些特殊符号的使用。

 好处:可以简化字符串的复杂操作。

具体操作工能

1,匹配 boolean matches(String regex);用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false.

2,切割 String[] split(String regex);

3,替换:replaceAll(String reg,String newStr);

匹配实例:

 

/*
    对QQ号码进行校验,要求5~15位,0不能开头,只能是数字。
    用到正则表达式匹配:
*/
class RegexDemo
{
    public static void main(String[] args) 
    {
        String qq="057896789";
        checkQQ(qq);
    }
    //对QQ号码进行校验,要求5~15位,0不能开头,只能是数字。
    
//用到正则表达式匹配:
    public static void checkQQ(String qq)
    {

        String regex="[1-9][0-9]{4,14}";//定义规则
        boolean flag=qq.matches(regex);//利用规则对qq进行匹配
        if(flag)
            System.out.println("QQ号码正确");
        else
            System.out.println("QQ号码非法");
        
    }
}

 

 切割:

 public static void splitDemo(String str)

    {
        String reg=" +";//按照一个或多个空格切割
        String reg2="\\.";//按照“.”切割
        String reg3="\\\\";//按照“\\”切割
        String reg4="(.)\\1+";//按照叠起切割
        /*
            为了让规则的结果可以被重用
            可以将规则封装成一个组。用()完成,组的出现都有编号,
            从1开始,想要使用已有的组,可以通过\n(n是组的编号)的形式来获取。
        
*/
        String[] arr=str.split(reg4);
        for(String s:arr)
        {
            System.out.println(s);
        }
    }

 替换:

public static void replaceAllDemo(String str)
    {
        System.out.println(str);
        String reg="\\d{4,}";//指定规则为4个或4个以上的数字。
        str=str.replaceAll(reg,"*");//替换为“*”;
        System.out.println(str);
        

    }

获取:

4,获取:
 操作步骤:
 1,将正则表达式封装成对象。
 2,让正则对象和要操作的字符串相关联、
 3,关联后,获取正则匹配引擎、

 4,通过正则匹配引擎对符合规则的字符串进行操作,比如取出 

 public static void getDemo(String str)

    {
        String reg="[a-zA-Z]{3}";
        //将正则封装成对象
        Pattern p=Pattern.compile(reg);
        //让正则对象和要作用的字符串相关联,获取匹配器对象
        Matcher m=p.matcher(str);
        //将规则作用到字符串上,查找与之匹配的子序列。
        while(m.find())
        {
            System.out.println(m.group());//获取匹配后的结果。
        }

    }

 

 

 

 

 

 

 

 

 

 

posted @ 2013-05-14 17:29  xiewen3410  阅读(107)  评论(0编辑  收藏  举报