java正则表达式总结

来源:互联网 发布:交易模拟软件 编辑:程序博客网 时间:2024/05/22 07:45
package pack;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {    public static void main(String[] args) {        //method1();//匹配        //method2();//切割        //method3();//替换        /*前面只是用了String的方法*/        method4();    }    public static void method1() {        String qq = "1881265";        String regex1 = "[1-9]\\d{4,14}";        sys(qq.matches(regex1));  //是否符合regex规则        String s = "e";        //String regex = "[a-zA-Z]";  // 字母        //String regex = "[a-d[m-p]]";   //a到d 或 m到p        /* \d     数字[0-9]         * \D     非数字[^0-9]         * \s     空白字符         * \S     非空白字符         * \w     单词字符[a-zA-Z0-9_]         * \W     非单词字符         *          *          *          * X?      一次或零次         * X*      零次或多次         * X+      一次或多次         * X{n}    恰好n次         * X{n,}   至少n次         * X{n,m}  n次到m次         *           */        String regex = "\\d";            sys(s.matches(regex));    }    public static void method2() {        /*String s = "zhang   li    san";        String regex = "\\s+";        String[] arr = s.split(regex);        for(String ss : arr)            sys(ss);*/        /*        String s = "zhang.li.san";        String regex = "\\.";  //  \.代表正则表达式中的.即任意字符,\\.代表普通点,                                                                                                           不能直接用.切,它是特殊字符        String[] arr = s.split(regex);        for(String ss : arr)            sys(ss);*/        /*String s = "www\\abs\\1.txt";        String regex = "\\\\";          String[] arr = s.split(regex);        for(String ss : arr)            sys(ss);*/        String s = "wekkyduffopxxxs";        //按叠词切/*按照叠词完成切割,为了让规则是结果被重用,可以将规则封装成一个组,用()完成,组都有编号,从1开始*/        String regex = "(.)\\1+"; //括号是组的概念,\1是再次出现,\1+是一次或多次        String[] arr = s.split(regex);        for(String ss : arr)            sys(ss);    }    public static void method3() {        String s = "wj3374zns399nvn9999klf3333";  //将数字替换为#号        String regex = "[0-9]";        s.replaceAll(regex, "#");        sys(s);        /*String s = "wekkyduffopxxxs";  //将叠词替换为单个,如:zzzz->z        String regex = "(.)\\1+";        s.replaceAll(regex, "$1");        sys(s);*/    }    public static void method4() {        String s = "zhas asb cjcdj csj cbbdv";        String regex = "[a-z]{3}";        //将规则封装成对象        Pattern p = Pattern.compile(regex);        //获取匹配器对象        Matcher m = p.matcher(s);        sys(m.matches()); //匹配全部,为false,注意:指针向后移了,会影响下面的结果        while(m.find()) {            sys(m.group());  //匹配到的字符串            sys(m.start()+"..."+m.end()); //匹配到的字符串起止位        }    }    public static void sys(Object obj) {        System.out.println(obj);    }}
0 0
原创粉丝点击