• java中正则表达式(摘自 Nerxious)


     

    正则表达式在处理字符串的效率上是相当高的

    关于正则表达式的使用,更多的是自己的经验,有兴趣可以参阅相关书籍

    这里主要写一下java中的正则操作方法

    实例1:匹配
    复制代码
    import java.util.Scanner;
    
    class Demo {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            //获取输入
            System.out.print("Please Enter:");
            String str = sc.nextLine();
            check(str);
        }
    
        private static void check(String str) {
            //匹配第一位是1-9,第二位及以后0-9(个数在4-10之间)
            String regex = "[1-9][0-9]{4,10}";
            
            /*
            //匹配单个字符是大小写的a-z
            String regex = "[a-zA-Z]";
            //匹配数字,注意转义字符
            String regex = "\d";
            //匹配非数字
            String regex = "\D";
            */
            
            if(str.matches(regex)) {
                System.out.println("匹配成功");
            } else {
                System.out.println("匹配失败");
            }
        }
    }
    复制代码
     

    此处String类中的matches()方法用于匹配

    实例2:切割
    复制代码
    import java.util.Scanner;
    
    class Demo {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.print("Please Enter:");
            String str = sc.nextLine();
            split(str);
        }
    
        private static void split(String str) {
            //匹配一个或多个空格
            String regex = " +";
            
            String[] arr = str.split(regex);
            
            for (String s : arr) {
                System.out.println(s);
            }
        }
    }
    复制代码

    此处String类中的split()方法用于按正则表达式切割,返回一个String数组

    实例3:替换
    复制代码
    import java.util.Scanner;
    
    class Demo {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.print("Please Enter:");
            String str = sc.nextLine();
            replace(str);
        }
    
        private static void replace(String str) {
            //匹配叠词
            String regex = "(.)\1+";
            String s = str.replaceAll(regex, "*");
            System.out.println(s);
        }
    }
    复制代码

    注意replaceAll有两个参数,一个是正则,一个是替换的字符

  • 相关阅读:
    springboot+swagger生成api文档
    字符串格式化
    Navicat过期
    网页版的支付宝授权登录(vue+java)
    window,sts安装python
    PageHelper分页+排序
    android那些事之Bitmap、InputStream、Drawable、byte[]、Base64之间的转换关系
    两种解析JSON的方法
    蓝牙那些事之远程设备
    蓝牙那些事之状态监听
  • 原文地址:https://www.cnblogs.com/slxydyl/p/5748939.html
Copyright © 2020-2023  润新知