Java:正则表达式 matches


黑马学习笔记

正则表达式

由一些特定的字符组成,代表的是一个规则

作用

  • 用来校验数据格式是否合法
  • 在一段文本中查找满足要求的内容

基本用法

进API查,或者使用的时候直接搜
在这里插入图片描述

小结

在这里插入图片描述

代码

/**
 * @Author: ggdpzhk
 * @CreateTime: 2024-09-02
 * 校验QQ号码是否正确,要求全部是数字,长度是(6-20)之间,不能以0开头
 */
public class regex {
    public static void main(String[] args) {
        String qq = "12366589";
        String qq1 = "q1256d3";
        String qq2 = "03336";
        System.out.println(cheakQQ(qq));
        System.out.println(cheakQQ(qq1));
        System.out.println(cheakQQ(qq2));

        System.out.println(cheakQQ2(qq));
        System.out.println(cheakQQ2(qq1));
        System.out.println(cheakQQ2(qq2));


    }



    //使用正则表达式
    public static boolean cheakQQ2(String qq) {
        return qq != null && qq.matches("[1-9]\\d{5,19}");//第一个数字是1-9,后面是0-9的数字,长度是6-20,
        //  \\d{a,b}表示后边数字的位数,如:\d{3}表示3位数字,\d{1,3}表示1-3位数字
        // \\d 是转义字符
    }

    public static boolean cheakQQ(String qq) {
        //1. 判断号码是否为null
        if (qq == null || qq.startsWith("0") || qq.length() < 6 || qq.length() > 20) {
            return false;
        }
        //2. 判断qq号码是否为纯数字
        for (int i = 0; i < qq.length(); i++) {
            if (qq.charAt(i) < '0' || qq.charAt(i) > '9') {
                return false;
            }
        }
        return true;
    }
}

在这里插入图片描述

案例:校验用户输入的电话,邮箱,是否合法

package regex;

import java.util.Scanner;

/**
 * @Author: ggdpzhk
 * @CreateTime: 2024-09-02
 *
 * 校验用户输入的电话,邮箱,是否合法
 */
public class Test2 {
    public static void main(String[] args) {

        Scanner sc =  new Scanner(System.in);
        while (true) {
            System.out.println("请输入您的电话号码:");
            String phone = sc.next();

            if(cheakPhone(phone)){
                System.out.println("电话号码合法");
                break;//注意!!!!
            }else{
                System.out.println("电话号码不合法");
            }
        }

        while (true) {
            System.out.println("请输入您的qq邮箱:");
            String email = sc.next();
            if(cheakEmail(email)){
                System.out.println("邮箱合法");
                break;
            }else{
                System.out.println("邮箱不合法");
            }
        }

        while (true) {
            System.out.println("请输入您的密码:(6-10位,包含数字和大小写字母)");
            String password = sc.next();
            if(cheakPassword(password)){
                System.out.println("密码合法");
                break;
            }else{
                System.out.println("密码不合法");
            }
        }
    }

    private static boolean cheakPassword(String password) {
        return password.matches("^[a-zA-Z0-9]{6,10}$");
    }


    //检查输入邮箱是否满足格式
    /*
    @qq.com  前面的位数在5 - 10 之间,第一位不能是0
    * */
    private static boolean cheakEmail(String email) {
        return email.matches("^[^0][0-9a-zA-Z]{4,9}@qq\\.com$");
    }

    //检查电话是否合法
    /*
    1. 11位
    2. 不能以0开头
    3. 不能有数字以外的字符
     */
    public static boolean cheakPhone(String phone){
        return phone.matches("^[1][3-9][0-9]{9}$");
        //   ^ $ 表示字符的开始和结束    第一位只能是1  第二位是3-9  后面9位是0-9
    }


}


在这里插入图片描述

\.是什么意思

在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值