• [Java] 正则表达式 01 (基本都概览)


    利器RegularExpressions
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Test {
    
        public static void main(String[] args) {
            // 简单认识正则表达式的概念
            /*
             * p("abc".matches("...")); p("a8729a".replaceAll("\d", "-")); Pattern
             * p = Pattern.compile("[a-z]{3}"); Matcher m = p.matcher("fgh"); //
             * 有限状态自动机 p(m.matches()); p("fgha".matches("[a-z]{3}"));
             */
    
            // 初步认识. * + ?
            /*
             * p("a".matches(".")); p("aa".matches("aa")); p("aaaa".matches("a*"));
             * p("aaaa".matches("a+")); p("".matches("a*"));
             * p("aaaa".matches("a?")); p("".matches("a?")); p("a".matches("a?"));
             * p("214523145234532".matches("\d{3,100}"));
             * p("192.168.0.aaa".matches(
             * "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"));
             * p("192".matches("[0-2][0-9][0-9]"));
             */
    
            // 范围
            /*
             * p("a".matches("[abc]")); p("a".matches("[^abc]"));
             * p("A".matches("[a-zA-Z]")); p("A".matches("[a-z]|[A-Z]"));
             * p("A".matches("[a-z[A-Z]]")); p("R".matches("[A-Z&&[RFG]]"));
             */
    
            // 认识s w d 
            /*
             * p(" 
    
    	".matches("\s{4}")); p(" ".matches("\S"));
             * p("a_8".matches("\w{3}"));
             * p("abc888&^%".matches("[a-z]{1,3}\d+[&^#%]+"));
             * p("\".matches("\\"));
             */
    
            // POSIX Style
            // p("a".matches("\p{Lower}"));
    
            // boundary
            /*
             * p("hello sir".matches("^h.*")); p("hello sir".matches(".*ir$"));
             * p("hello sir".matches("^h[a-z]{1,3}o\b.*"));
             * p("hellosir".matches("^h[a-z]{1,3}o\b.*")); //whilte lines
             * p(" 
    ".matches("^[\s&&[^\n]]*\n$")); // 开头是空白字符但不是换行符
             * 
             * p("aaa 8888c".matches(".*\d{4}."));
             * p("aaa 8888c".matches(".*\b\d{4}."));
             * p("aaa8888c".matches(".*\d{4}."));
             * p("aaa8888c".matches(".*\b\d{4}."));
             */
    
            // email
            // p("asdfasdfsafsf@dsdfsdf.com".matches("[\w[.-]]+@[\w[.-]]+\.[\w]+"));
    
            // matches find lookingAt
            /*
             * Pattern p = Pattern.compile("\d{3,5}"); String s =
             * "123-34345-234-00"; Matcher m = p.matcher(s); p(m.matches());
             * m.reset(); p(m.find()); p(m.start() + "-" + m.end()); p(m.find());
             * p(m.start() + "-" + m.end()); p(m.find()); p(m.start() + "-" +
             * m.end()); p(m.find()); //p(m.start() + "-" + m.end());
             * p(m.lookingAt()); p(m.lookingAt()); p(m.lookingAt());
             * p(m.lookingAt());
             */
    
            // replacement
            /*
             * Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
             * Matcher m =
             * p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
             * StringBuffer buf = new StringBuffer(); int i=0; while(m.find()) {
             * i++; if(i%2 == 0) { m.appendReplacement(buf, "java"); } else {
             * m.appendReplacement(buf, "JAVA"); } } m.appendTail(buf); p(buf);
             */
    
            // group
            /*
             * Pattern p = Pattern.compile("(\d{3,5})([a-z]{2})"); String s =
             * "123aa-34345bb-234cc-00"; Matcher m = p.matcher(s); while(m.find()) {
             * p(m.group()); }
             */
    
            // qulifiers
            /*
             * Pattern p = Pattern.compile(".{3,10}+[0-9]"); String s =
             * "aaaa5bbbb68"; Matcher m = p.matcher(s); if(m.find()) p(m.start() +
             * "-" + m.end()); else p("not match!");
             */
    
            // non-capturing groups
            /*
             * Pattern p = Pattern.compile(".{3}(?=a)"); String s = "444a66b";
             * Matcher m = p.matcher(s); while(m.find()) { p(m.group()); }
             */
    
            // back refenrences
            /*
             * Pattern p = Pattern.compile("(\d(\d))\2"); String s = "122";
             * Matcher m = p.matcher(s); p(m.matches());
             */
    
            // flags的简写
            // Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
            p("Java".matches("(?i)(java)"));
        }
    
        public static void p(Object o) {
            System.out.println(o);
        }
    }
    

  • 相关阅读:
    针对Python基本数据类型的操作
    Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from 这类问题的解决方法
    校招有感:计算机专业毕业生如何找工作(Java方向)
    我用了半年的时间,把python学到了能出书的程度
    Java面试官经验谈:如何甄别候选人真实的能力,候选人如何展示值钱技能
    Java字节码与反射机制
    以我的亲身经历,聊聊学python的流程,同时推荐学python的书
    面试时通过volatile关键字,全面展示线程内存模型的能力
    如果很好说出finalize用法,面试官会认为你很资深
    C# post json和接收json
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786823.html
Copyright © 2020-2023  润新知