• 牛客网Java刷题知识点之正则表达式(Matcher、Pattern)


      不多说,直接上干货!

    正则表达式是什么?

      正则表达式是一种可以用于模式匹配和替换的规范, 一个正则表达式就是由普通的字符(例如字符az) 以及特殊字符(元字符) 组成的文字模式, 它用以描述在查找文字主体时需要匹配的一个或多个字符串。 正则表达式作为一个模板, 将某个字符模式与所搜索的字符串进行匹配 。
      自从jdk1.4推出java.util.regex包, 为我们提供了很好的Java正则表达式应用平台。 
      PatternMatcher


    Pattern类, 里面列出了全部的正则表达式内容。
      1、逻辑运算符:
        |:管道符.如:x|y表示x或y
        ():捕获组.(abc)|(xyz)表示abc或xyz
      2、边界匹配符:
        ^:从头匹配
        $:从尾匹配

     RegexDemo.java

    package zhouls.java.demo.regex;
    
    import java.util.regex.Matcher;//正则表达式
    import java.util.regex.Pattern;
    
    public class RegexDemo {
        
        /*
         * 主函数
         */
        public static void main(String[] args) {
            //判断一个字符串是否是由纯数字组成的
            String s = "1234567890";
            boolean flag = method02(s);
            
            if(flag){
                System.out.println("字符串是由纯数字组成的");
            }else{
                System.out.println("字符串不是由纯数字组成的");
            }
        }
    
        /**
         * 使用正则表达式来判断
         * @param s
         * @return
         */
        public static boolean method02(String s) {
            /*Pattern pattern = Pattern.compile("[0-9]+");
            Matcher matcher = pattern.matcher(s);
            if(matcher.matches()){
                return true;
            }*/
            if(Pattern.compile("[0-9]+").matcher(s).matches()){
                return true;
            }
            return false;
        }
    
        /**
         * 取字符判断
         * @param s
         * @return
         */
        public static boolean method01(String s) {
            char[] chs = s.toCharArray();
            boolean flag = true;
            
            for(char c : chs){
                if(c < '0' || c > '9'){
                    flag = false;
                    break;
                }
            }
            return flag;
        }
    }

    RegexDemo02.scala

    package zhouls.java.demo.regex;
    
    import java.util.Arrays;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class RegexDemo02 {
        
        /*
         * 主函数 
         */
        public static void main(String[] args) {
            //method01();
            
            //method02();
            
            //method03();
            boolean flag = "2017-07-15".matches("\d{4}-\d{2}-\d{2}");
            System.out.println("字符串日期是否合法:"+flag);
            
            String[] arr = "abc12abc123abc1234abc".split("\d+");
            System.out.println(Arrays.toString(arr));
            
            String ss = "abc12abc123abc1234abc".replaceAll("\d+", "_");
            System.out.println(ss);
        }
    
        /**
         * 替换
         */
        public static void method03() {
            String s = "abc12abc123abc1234abc";
            String regex = "\d+";
            String ss = Pattern.compile(regex).matcher(s).replaceAll("_");
            System.out.println(ss);
        }
    
        /**
         * 根据正则表达式进行拆分
         */
        public static void method02() {
            String s = "abc12abc123abc1234abc";
            String regex = "\d+";
            String[]  arr = Pattern.compile(regex).split(s);
            System.out.println(Arrays.toString(arr));
        }
    
        /**
         * 判断是否匹配
         */
        public static void method01() {
            //验证字符串是否是指定的格式
            String s = "2017-07-15";
            String regex = "\d{4}-\d{2}-\d{2}";
            Pattern pattern = Pattern.compile(regex); 
            Matcher matcher = pattern.matcher(s);
            if(matcher.matches()){
                System.out.println("字符串日期合法");    
            }else{
                System.out.println("字符串日期不合法");
            }
        }
    }

  • 相关阅读:
    常见 Web 安全攻防总结
    传统方式接口测试返回值json验证
    Springboot中RestTemplate -- 用更优雅的方式发HTTP请求
    mock简单的json返回
    MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数
    MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)
    MySQL数据库学习笔记(三)----基本的SQL语句
    MySQL数据库学习笔记(一)----MySQL 5.6.21的安装和配置(setup版)
    python实现广度优先搜索
    php递归
  • 原文地址:https://www.cnblogs.com/zlslch/p/7472336.html
Copyright © 2020-2023  润新知