JAVA基础-正则表达式

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

好处:可以简化对字符串的复杂操作
弊端:符合定义越多,正则越长,阅读星越差

具体操作功能
1.匹配:String matches方法,用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回flase

2.切割 String split方法

3 替换:replace replaceAll

4.获取:将字符串中符合规则的子串取出。
操作步骤:
1.将正则表达式封装成对象
2.让正则对象和要操作的字符串相关联
3.关联后获取正则匹配引擎
4.通过引擎对符合规则的字符串进行操作,比如取出。



import java.util.regex.*;

class regexDemo 
{
    public static void main(String[] args) 
    {
        String qq="12465";
        String regex="[1-9][0-9]{4,14}";
        //System.out.println(qq.matches(regex));
        //demo();
        //splitDemo();
        //replaceAllDemo();
         myregex();
    }
    public static void demo(){
        String str="b";
        String reg="[bcd]";
        System.out.println(str.matches(reg));
        String str1="b8";
        String reg1="[bcd]\d";
        System.out.println(str1.matches(reg1));

    }
    public static void splitDemo(){
        String str="erkktyqqquizzdo";
        String reg="(.)\1+";//按照叠词完成切割,为了可以让规则的结果被重用
                            //可以将规则封装成一个组,用()完成,组的出现都有编号
                            //从1开始,想用使用已有的组可以通过
(n是组的编号)的形式来获取
        String[] arr=str.split(reg);
        for(String s:arr){
            System.out.println(s);
        }
    }

    public static void replaceAllDemo(){
        String str="wer461561685er6546515ere654131";
        String reg="\d{5,}";
        String newStr="#";
        //用$符号获取前面的组
        String str1="aaddfcfgdsssdf";//将重叠的字母替换成一个
        String reg1="(.)\1+";//相同的字符出现两次或多次
        String newStr1="$1";
        
        //System.out.println(str.replaceAll(reg,newStr));
        System.out.println(str1.replaceAll(reg1,newStr1));
    }
    public static void myregex(){
        String str="ming tian yao qu shang ban le ";

        String reg="[a-z]{3}";
        //将规则封装成对象。Pattern无构造方法,使用complie获取对象
        Pattern p=Pattern.compile(reg);
        
        //让正则对象和要作用的字符串相关联.获取匹配器对象
        //其实String类中的matches方法,用的就是Pattern和Mathcher。
        //只是提供的功能单一,如果使用更复杂的操作就需要使用Pattern和Matcher类
        Matcher m=p.matcher(str);
        
        //将规则作用到字符串,并进行符合规则的子串查找
        //boolean b=m.find();
        
        //用于匹配后的结果。必须进行匹配查找才可以
        //System.out.println(m.group());
        
        //取出方式,先find,在group。
        while(m.find()){
            System.out.println(m.group());
        }
        

    }
}
原文地址:https://www.cnblogs.com/chun2015/p/4947304.html