正则表达式记录

1、匹配字符串后面跟数组取值, 例:object[1,2,3][0]; [0,1][2];[123]

diff 复制代码
^\w*\[\s*(-?\d+\s*(,\s*-?\d+\s*)*)\](\[\s*(-?\d+\s*(,\s*-?\d+\s*)*)\s*\])*
diff 复制代码
Pattern pattern = Pattern.compile("^\\w*\\[\\s*(-?\\d+\\s*(,\\s*-?\\d+\\s*)*)\\](\\[\\s*(-?\\d+\\s*(,\\s*-?\\d+\\s*)*)\\s*\\])*");
       String[] strArr = {"object[1,2,3][0]", "[0,1][2]", "obj[10]", "[1]"};
       for (String str : strArr) {
           System.out.println(pattern.matcher(str).matches());
}

2、截取中括号里面的值

java 复制代码
\[(.*?)\]
java 复制代码
String[] strArr = {"object[1,2,3][0]", "[0,1][2]", "obj[10]", "[1]"};
        Pattern pattern = Pattern.compile("\\[(.*?)\\]");
        for (String strKey : strArr) {
            Matcher matcher = pattern.matcher(strKey);
            while (matcher.find()) {
//          System.out.println(matcher.group(0)); // 输出整个匹配的括号内内容
                System.out.println(matcher.group(1)); // 输出括号内的具体值
            }
            System.out.println("----------------------------");
        }

3、判断逗号分隔的数字是否全部为正整数

java 复制代码
^\s*(\d+\s*,\s*)*\d*\s*$
java 复制代码
        String[] strArr = {"1,2,3", "0", "8,a,1", "-1,99", "1,2.3","aa"};
        Pattern pattern = Pattern.compile("^\\s*(\\d+\\s*,\\s*)*\\d*\\s*$");
        for (String strKey : strArr) {
            Matcher matcher = pattern.matcher(strKey);
            System.out.println(matcher.matches());
        }
相关推荐
她说..37 分钟前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
庞轩px1 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
皮皮林5512 小时前
面试官:ZSet 的底层实现是什么?
java
码云数智-大飞2 小时前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
2601_949816582 小时前
Spring+Quartz实现定时任务的配置方法
java
计算机毕设指导63 小时前
基于SpringBoot校园学生健康监测管理系统【源码文末联系】
java·spring boot·后端·spring·tomcat·maven·intellij-idea
mysuking3 小时前
springboot与springcloud对应版本
java·spring boot·spring cloud
希望永不加班3 小时前
SpringBoot 数据库连接池配置(HikariCP)最佳实践
java·数据库·spring boot·后端·spring
迈巴赫车主4 小时前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯
身如柳絮随风扬4 小时前
Lambda、方法引用与Stream流完全指南
java·开发语言