栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java正则表达式learn

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java正则表达式learn

正则表达式是一串字符,表示了一种文本模式,在java中主要有如下语法:

#1 单个字符

#2 字符组

#3 分组

#4 特殊边界匹配

#5 环视边界匹配

#6 转义匹配模式等

测试:

public static void main(String[] args) {
        //特殊字符
        Pattern pattern1 = Pattern.compile("t");
        Matcher matcher1 = pattern1.matcher(" ");
        System.out.println("=result1=" + matcher1.find());
        //8进制字符
        Pattern pattern2 = Pattern.compile("0141");
        Matcher matcher2 = pattern2.matcher("a");
        System.out.println("=result2=" + matcher2.find());
        //16进制字符
        Pattern pattern3 = Pattern.compile("0x6A");
        Matcher matcher3 = pattern3.matcher("j");
        System.out.println("=result3=" + matcher3.find());
        //unicode字符
        Pattern pattern4 = Pattern.compile("0u9A6C");
        Matcher matcher4 = pattern4.matcher("马");
        System.out.println("=result4=" + matcher4.find());
        //单个字符
        Pattern pattern = Pattern.compile("a.f");
        Matcher abbf = pattern.matcher("atf");
        System.out.println("=result=" + abbf.find());
        //字符组1
        Pattern pattern5 = Pattern.compile("[ abcd ]");
        Matcher matcher5 = pattern5.matcher("a");
        System.out.println("=result5=" + matcher5.find());
        //字符组2
        Pattern pattern6 = Pattern.compile("[ 1-9 ]");
        Matcher matcher6 = pattern6.matcher("1");
        System.out.println("=result6=" + matcher6.find());
        //字符组3
        Pattern pattern7 = Pattern.compile("[ ^abcd ]");
        Matcher matcher7 = pattern7.matcher("abcd");
        System.out.println("=result7=" + matcher7.find());
        //贪婪
        Pattern pattern8 = Pattern.compile(".*");
        Matcher matcher8 = pattern8.matcher("firstsecond");
        System.out.println("=result8=" + matcher8.find());
        //非贪婪
        Pattern patter9 = Pattern.compile(".*?");
        Matcher matcher9 = patter9.matcher("first");
        System.out.println("=result9=" + matcher9.find());
        //分组 捕捉后可以继续用
        Pattern patter10 = Pattern.compile("a(bc)((de)(fg))");
        Matcher matcher10 = patter10.matcher("abcdefg");
        System.out.println("=result10=" + matcher10.find());
        //回溯
        Pattern patter11 = Pattern.compile("<(\w+)>(.*)");
        Matcher matcher11 = patter11.matcher("bc");
        System.out.println("=result11=" + matcher11.find());
        //非捕分组
        Pattern patter12 = Pattern.compile("(?:abc|def)");
        Matcher matcher12 = patter12.matcher("abc");
        System.out.println("=result12=" + matcher12.find());
        //边界匹配开头
        Pattern patter13 = Pattern.compile("^abc");
        Matcher matcher13 = patter13.matcher("abc");
        System.out.println("=result13=" + matcher13.find());
        //边界匹配结尾
        Pattern patter14 = Pattern.compile("abc$");
        Matcher matcher14 = patter14.matcher("sssssssabc");
        System.out.println("=result14=" + matcher14.find());
        //多行匹配
        Pattern patter15 = Pattern.compile("abc$",Pattern.MULTILINE);
        Matcher matcher15 = patter15.matcher("sssssssabc");
        System.out.println("=result15=" + matcher15.find());
        //肯定顺序环视
        Pattern patter16 = Pattern.compile("abc(?=def)");
        Matcher matcher16 = patter16.matcher("abcdef");
        System.out.println("=result16=" + matcher16.find());
        //否定顺序环视
        Pattern patter17 = Pattern.compile("abc(?!def)");
        Matcher matcher17 = patter17.matcher("abcdef");
        System.out.println("=result17=" + matcher17.find());
        //肯定逆序环视
        Pattern patter18 = Pattern.compile("abc(?<=def)");
        Matcher matcher18 = patter18.matcher("abcdef");
        System.out.println("=result18=" + matcher18.find());
        //否定逆序环视
        Pattern patter19 = Pattern.compile("abc(?<!def)");
        Matcher matcher19 = patter19.matcher("abcdef");
        System.out.println("=result19=" + matcher19.find());
        //转义
        Pattern patter20 = Pattern.compile("\\");
        Matcher matcher20 = patter20.matcher("\");
        System.out.println("=result20=" + matcher20.find());

//java中 的正则 相关的都是\
        Pattern pattern1 = Pattern.compile("<(\w+)>(.*)");
        Matcher matcher1 = pattern1.matcher("bc");
        System.out.println("=result1=" + matcher1.find());
        //java中 单行模式
        Pattern pattern2 = Pattern.compile("<(\w+)>(.*)",Pattern.DOTALL);
        Matcher matcher2 = pattern2.matcher("bc");
        System.out.println("=result2=" + matcher2.find());
        //java中 多行模式
        Pattern pattern3 = Pattern.compile("<(\w+)>(.*)",Pattern.MULTILINE);
        Matcher matcher3 = pattern3.matcher("bc");
        System.out.println("=result3=" + matcher3.find());
        //java中 忽略大小写模式
        Pattern pattern4 = Pattern.compile("the",Pattern.CASE_INSENSITIVE);
        Matcher matcher4 = pattern4.matcher("THE");
        System.out.println("=result4=" + matcher4.find());
        //java中 原样输出模式 Q E
        Pattern pattern5 = Pattern.compile("\t\n",Pattern.LITERAL);
        Matcher matcher5 = pattern5.matcher("\t\n");
        System.out.println("=result5=" + matcher5.find());

        String str = "abc def hello.n world";
        String[] split = str.split("(\s|\.)+");
        for (int i = 0; i < split.length; i++) {
            System.out.println("====>"+split[i]);
        }

        String str2 = ",abc,def,";
        String[] split2 = str2.split(",");
        for (int i = 0; i < split2.length; i++) {
            System.out.println("===="+split2[i]);
        }
        //pattern split
        Pattern pattern6 = Pattern.compile("\d{4}");
        String[] split1 = pattern6.split("\d");
        for (int i = 0; i < split1.length; i++) {
            System.out.println("--->"+split1[i]);
        }
        Matcher matcher6 = pattern6.matcher("2222");
        System.out.println("=result6=" + matcher6.find());

        String regex = "\d{4}-\d{2}-\d{2}";
        Pattern pattern = Pattern.compile(regex);
        String strs = "today is 2017-06-02,yesterday is 2017-06-01";
        Matcher matcher = pattern.matcher(strs);
        while(matcher.find()){
            System.out.println("find "+matcher.group()+" position:"+matcher.start()+"-"+matcher.end() +"===>"+matcher.group(0) +"&&"+matcher.groupCount() +"--->"+matcher.appendReplacement(new StringBuffer("2018"),"2017")) ;
        }
        System.out.println(strs);









    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号