zoukankan      html  css  js  c++  java
  • [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);
        }
    }
    

  • 相关阅读:
    面试之Promise对象
    HTML和CSS复习
    Vue学习第三天之vuex的todo小项目。
    MEC如何打开主界面对话框类
    静态链表求(A-B)U(B-A)的集合
    线性表---链式存储(双向链表)
    线性表---链式存储(单链表)
    线性表--线性存储
    结构体数组应用举例
    分治法求最大子段和
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786823.html
Copyright © 2011-2022 走看看