zoukankan      html  css  js  c++  java
  • 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有两个参数,一个是正则,一个是替换的字符

  • 相关阅读:
    hiveserver2 with kerberos authentication
    python Basic usage
    python Quicksort demo
    Python HeapSort
    mrunit for wordcount demo
    CCDH证书
    Hadoop question list
    Hadoop Yarn core concepts
    Hadoop Resource
    Hadoop could not find or load main class
  • 原文地址:https://www.cnblogs.com/slxydyl/p/5748939.html
Copyright © 2011-2022 走看看