zoukankan      html  css  js  c++  java
  • java中的正则操作总结

    http://www.cnblogs.com/nerxious/archive/2013/01/03/2842910.html

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

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

    这里主要写一下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有两个参数,一个是正则,一个是替换的字符

  • 相关阅读:
    Webpack 入门指迷--转载(题叶)
    浏览器工作原理理解
    Knockout.js初体验
    node.js链接mysql
    2020年度春季学习总结--第二周
    Python 爬取 热词并进行分类数据分析-[安全性改造]
    以 CheatEngine 为例的六个质量属性
    2020年度春季学习总结--第一周
    软件架构师如何工作-个人见解
    Steam 游戏 《Crashlands(崩溃大陆)》修改器制作-[先使用CE写,之后有时间的话改用CheatMaker](2020年寒假小目标12)
  • 原文地址:https://www.cnblogs.com/tc310/p/3958216.html
Copyright © 2011-2022 走看看