• java 正则表达式


    package com.reg.test;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 一个Matcher类,java.util.regex.Matcher,java.util.regex.Pattern 存在这两个包里面
     * 1)字符串里面的所有的"" 都需要转义
     * find()
     * start()
     * end()
     * group()
     * lookingAt
     * matches
     * replaceFirst
     * replaceAll
     * appendReplacement
     * appendTail
     */
    public class Demo01 {
        public static void main(String[] args) {
            String content = "12eintet 23 one onete feontet";
            Matcher matcher = Pattern.compile("\bone\b").matcher(content);
            /**
             * find 一次查到发个,并将指针指向下一个
             */
            /*
            while (matcher.find()) {
                System.out.println(matcher.group());
                System.out.println(matcher.start()); // 获取开始索引
                System.out.println(matcher.end());   // 获取结束索引
            }
            */
    //        test1();
    //        replace();
    //        append();
    //        tanlan();
            reverseReplace();
        }
    
        public static void test1() {
            Pattern pattern = Pattern.compile("foo");
            String one = "foocontent...........";
            String two = "foo";
            Matcher matcher = pattern.matcher(two);
    
            System.out.println("从开头能不能查到" + matcher.lookingAt()); //必须是从字符串的头部开始匹配
            System.out.println("从中间查" + matcher.matches()); //这个是完全的匹配
        }
    
        public static void replace() {
            String s1 = "12onetet";
            String s2 = "1cniet23oaeb";
            String s3 = "监控中心";
            Pattern pattern = Pattern.compile("\d");
            Matcher matcher = pattern.matcher(s1);
            // 替换过后,返回一个新的字符串
            String re_content = matcher.replaceFirst(s3);
            // 替换所有的内容
            System.out.println(re_content);
            String new_re_content = matcher.replaceAll("雷");
            System.out.println(new_re_content);
    
        }
    
        public static void append() {
            /**
             * 原字符串操作 逐个查找
             */
            String REGEX = "a*b";
            String INPUT = "aabfooaabfooabfoobkkk";
            String REPLACE = "-";
    
            Pattern p = Pattern.compile(REGEX);
            // 获取 matcher 对象
            Matcher m = p.matcher(INPUT);
            StringBuffer sb = new StringBuffer();
    
            while (m.find()) {
                // 匹配到最后一个就终止,后面的内容就不追加了
                m.appendReplacement(sb, REPLACE);
            }
    
            System.out.println(sb);
            // 将尾部也加入进去
            m.appendTail(sb);
            System.out.println(sb.toString());
    
        }
    
        public static void tanlan() {
            String str = "这是一个正则表达式字符串查找的示例,正则表达式好厉害呀";
            // 编译正则表达式
            Pattern pattern = Pattern.compile("正.*?式");
            // 开始匹配
            Matcher matcher = pattern.matcher(str);
            // 查找字符串中是否有匹配正则表达式的字符/字符串
            while (matcher.find()) {
                System.out.println(matcher.group());
            }
        }
    
        /**
         * 反向替换
         */
        public static void reverseReplace() {
            String time = "2018/11/22";
            Matcher matcher = Pattern.compile("(\d{4})/(\d{2})/(\d{2})").matcher(time);
    
            String newtime = matcher.replaceAll("$1-$2-$3");
    
            System.out.println(newtime);
        }
    
        
    }
    

      

  • 相关阅读:
    Jenkins常见的构建触发器
    NTP服务器搭建
    Jenkins钉钉通知
    Jenkins邮件通知
    升级到k8s的17.0出现问题
    推荐K8s的一键安装和一键升级
    Pipeline流水线项目构建
    Jenkins构建Maven项目
    Jenkins构建自由风格的项目
    Codeforces Round #570 (Div. 3 )A
  • 原文地址:https://www.cnblogs.com/leigepython/p/9999754.html
Copyright © 2020-2023  润新知