Java Regex练习(1) (2024.7.21)

Regex1

java 复制代码
package RegexExercise20240721;
import java.util.Scanner;
public class RegexExercise {
    public static void main(String[] args) {
        // 正则表达式
        /* 假如现在要求校验一个qq号码是否正确。
            规则:6位及20位之内,0不能在开头,必须全部是数字。
            先使用目前所学知识完成校验需求然后体验一下正则表达式检验。
        */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个qq号");
        String qq = sc.nextLine();
        if (qq.matches("[1-9]\\d{5,19}")) {  // [1-9]表示第一个数字只能是1-9
            System.out.println("此qq号合法");      //  \\d表示是数组的预定义字符,{5,19}
        } else {                                  //  表示除了第一位,还有5-19位数字
            System.out.println("此qq号非法");
        }

    }
}

Regex2

java 复制代码
package RegexExercise20240721;
import java.util.Scanner;
public class RegexExercise2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //1.要求字符串是小写辅音字符开头,后面纯字母,共六位
        /*System.out.println("请输入一个字符串");
        String testString = sc.nextLine();
        if (testString.matches("[a-z&&[^aeiou]][a-zA-Z]{5}")) {
            System.out.println("合法字符串");
        } else {
            System.out.println("非法字符串");
        }*/

        //2.要求字符串是aeiou中的某个字符开头,后跟ad
        System.out.println("请输入一个字符串");
        String testString = sc.nextLine();
        if (testString.matches("[aeiou]ad")) {
            System.out.println("合法字符串");
        } else {
            System.out.println("非法字符串");
        }
    }
}

Regex3

java 复制代码
package RegexExercise20240721;
import java.util.Scanner;
public class RegexExercise3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //练习:以字符串的形式打印一个双引号
        //在Java中\为转义字符
//        System.out.println("\"\""); // 只打""Java会认为你打了个空的字符串,所以说要用\"进行转义
//        System.out.println("\\"); // 同样,\会认为是一个转义字符,所以说要用\\来达到输出\的效果
        // 预定义字符
        // .表示任意一个字符
//        System.out.println("请输入一个字符串");
//        String str1 = sc.nextLine();
//        System.out.println(str1.matches(".{6}"));

        // /d表示[0-9]
        System.out.println("123456".matches("\\d{6}"));
        System.out.println("126".matches("\\d{6}")); // 位数不够
        System.out.println("1234aa".matches("\\d{6}")); // 不是纯数字
        System.out.println("-------------------------------------------");

        // /D表示[^0-9]
        System.out.println("123456".matches("\\D{6}")); // 不能出现数字
        System.out.println("abcdef".matches("\\D{6}"));
        System.out.println("abc132".matches("\\D{6}")); // 不能出现数字
        System.out.println("-------------------------------------------");

        // \s表示空白字符[\t\n\x0B\f\r]
        System.out.println(" \t".matches("\\s{2}")); // 大抵用得比较少
        System.out.println("-------------------------------------------");

        // \S表示非空白字符[^\s]
        System.out.println("123456".matches("\\S{6}")); // 无空白字符
        System.out.println("123 56".matches("\\S{6}")); // 有一个空白字符
        System.out.println("阿斯顿阿斯顿".matches("\\S{6}"));
        System.out.println("-------------------------------------------");

        // \w表示单词字符[a-zA-Z_0-9]
        System.out.println("123abc__".matches("\\w{8}"));
        System.out.println("123abc_$".matches("\\w{8}")); // 出现了非单词字符
        System.out.println("123abc_啊".matches("\\w{8}"));
        System.out.println("-------------------------------------------");

        // \W表示非单词字符[^\w]
        System.out.println("啊水水阿斯顿".matches("\\W{6}"));
        System.out.println("123阿斯顿".matches("\\W{6}")); // 出现了单词字符


    }
}

Regex4

java 复制代码
package RegexExercise20240721;
import java.util.Scanner;
public class RegexExercise4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 正则表达式的数量词
        // 必须是数字 字母 下划线 至少6位
        System.out.println("123456789".matches("\\w{6,}")); // {6,}表示至少六位
        System.out.println("123456789".matches("\\w{6}"));  // {6} 表示刚好六位
        System.out.println("-----------------------------------------");
        // 因为{,}是一个范围,所以说{6,}的范围就是6到正无穷,所以说是至少六位

        // 必须是数字和字符 必须是4位
        System.out.println("1234".matches("[a-zA-Z_0-9]{4}"));
        System.out.println("abcd".matches("[\\w&&[^_]]{4}"));
        System.out.println("abd".matches("[\\w&&[^_]]{4}")); // 位数不够
        System.out.println("a_2d".matches("\\w{4}"));
        System.out.println("-----------------------------------------");

        // 出现0次或1次----> x?
        System.out.println("123456a".matches("\\d{6}\\w?")); // \w出现了一次
        System.out.println("123456".matches("\\d{6}\\w?"));  // \w没有出现
        System.out.println("123456ab".matches("\\d{6}\\w?"));// \w出现了两次->false
        System.out.println("-----------------------------------------");

        // 出现0次到多次----> x*
        System.out.println("123456abc".matches("\\d{6}\\w*")); // \w出现了多次
        System.out.println("123456".matches("\\d{6}\\w*"));    // \w出现了0次
        System.out.println("123456a".matches("\\d{6}\\w*"));   // \w出现了1次
        System.out.println("-----------------------------------------");

        // 出现1次到多次----> x+
        System.out.println("123456abc".matches("\\d{6}\\w+"));
        System.out.println("123456".matches("\\d{6}\\w+")); // \w没有出现->false
        System.out.println("123456a".matches("\\d{6}\\w+"));
        System.out.println("-----------------------------------------");
    }
}
相关推荐
w_31234548 分钟前
自定义一个maven骨架 | 最佳实践
java·maven·intellij-idea
岁岁岁平安11 分钟前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA14 分钟前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
Q_192849990621 分钟前
基于Spring Boot的九州美食城商户一体化系统
java·spring boot·后端
张国荣家的弟弟38 分钟前
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
java·jar·bi
ZSYP-S1 小时前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos1 小时前
C++----------函数的调用机制
java·c++·算法
是小崔啊1 小时前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
黄公子学安全1 小时前
Java的基础概念(一)
java·开发语言·python
liwulin05061 小时前
【JAVA】Tesseract-OCR截图屏幕指定区域识别0.4.2
java·开发语言·ocr