正则表达式

正则表达式

概述

本质上是一些字符串,代表的是一个规则

作用

用来校验数据格式是否合法

在一段文本中查找满足要求的要求

书写规则

限定符

?代表前面的字符出现0次或者1次

*会匹配0个或多个字符

b{5} {2,6} {2,}花括号代表出现的次数

(ab)+ ”+“代表重复出现的字符

字符类

[abc]表示要求匹配出现的abc

[1-9a-AA-Z]代表1-9,a-z,A-Z

[^0-9] "^"表示匹配除了0-9以外的字符

元字符

\d数字字符 \D非数字字符

\w单词字符 \W非单词字符

\s空白符 \S非空白字符

. 代表字符

[^a]匹配行首的a

[$a]匹配行尾的a

贪婪匹配

*,+,{}在匹配字符的时候会尽可能匹配多的字符

//匹配html标签
<.+>会将内容全部匹配
而加上?
<.+?>会将贪婪匹配切换为懒惰匹配

实际需求

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

 public static void checkPhone() {
        System.out.println("请您输入手机号");
        String phone = new Scanner(System.in).next();
        /*
         * 18653559876
         * 020-4344245
         * 01044535413
         * */
        if (phone.matches("(1[3,9]\\d{9}|(0[1-9]\\d{1,4})-?[1-9]\\d{4,9})")) {
            System.out.println("恭喜您,手机号正确");

        } else {
            System.out.println("您输入的手机格式有毛病,请重新输入");
        }
    }

    public static void checkEmail() {
        System.out.println("请您输入邮箱");
        String email = new Scanner(System.in).next();

        if (email.matches("\\w{2,30}@\\w{2,20}(\\.\\w{2,10}){1,2}")) {
            System.out.println("恭喜您,邮箱正确");

        } else {
            System.out.println("您输入的邮箱格式有毛病,请重新输入");
        }
    }
posted @ 2023-11-12 14:07  奕帆卷卷  阅读(14)  评论(0)    收藏  举报