API 正则表打式

本文介绍了Java中正则表达式的使用,包括常见符号及其含义,如?、*、+、|、[ ]等,并通过示例展示了如何验证账户、密码、电子邮箱、手机号码等的格式。同时,讲解了正则表达式在数据输入限制和字符串匹配中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.zking.test;

public class MyDemo {

    public static void main(String[] args) {
        /**
         * 正则表达式: (1)其实就是一种限制规则,可以利用这种规则来限制用户的数据输入增删改查。 (2)正则表达式并不孤单(Java有 网页中也有)
         * (3)Java中的正则表达式:①通过String类提供的方法来完成正则表达式的要求 ②利用正则表达式的专属类实现
         * 
         * 正则表达式的规则怎么定义:利用符号以及字母以及数字去定义规则
         * 
         * 
         * 常用的正则符号: ? 0次或1次 账号 a ? aa + 至少1次 * 任意次 - 连字符 . 除了(\n)的任意字符 | 或者 [abc] 任选一个
         * [abc]{3,} 任选1个至少重复3次,趋向于正无穷大 [abc]{3,5} 任选1个至少3次,最多5次 [abc]{6} 任选1个,必须重复6次 \d
         * 数字0-9任选1个 [0-9] \w 0-9a-zA-Z_ 任选1个 () 分组 看成一个整体
         * 
         * 
         *    ^ 必须以指定的字符开头
         *    $ 必须以指定的字符结尾
         * 
         * 
         * 
         * 正则表达式的玩法顺序: 1.根据需求定义指定的字符串 2.根据正则表达式的规则符号定义规则(字符串类型 定义)
         * 3.通过String类提供的方法进行调用,并其将规则传入该方法内进行判断即可。
         * 
         */

        // 例子:账户 必须纯数字 范围6-12
        // String username = "123456";
        // if(username.length() >= 6 && username.length()<=12) {
        // boolean flag = true;//可以
        // for (int i = 0; i < username.length(); i++) {
        // char chs = username.charAt(i);
        // if(!Character.isDigit(chs)) {
        // flag = false;
        // }
        // }
        // if(flag == true) {
        // System.out.println("OK");
        // }else {
        // System.out.println("不OK");
        // }
        // }else {
        // System.out.println("账户有误,必须在6-12之间");
        // }

        // 正则表达式
        // String username = "123456abc";
        // //定义规则 通过字符串定义
        // String regex = "[0-9]{6,12}";
        // //调用String类中提供的方法来匹配规则是否满足要求
        // System.out.println(username.matches(regex));

        // 【======正则示例======】
        String str = "";
        String regex = "";
        // 1、匹配密码:6位的数字
        // str = "1234567";
        // regex = "\\d{6}";
        // System.out.println(str.matches(regex));
        // 2、匹配用户名:由英文字母组成 长度必须在10-20之间
        // str = "adminadmin123";
        // regex = "[a-zA-Z]{10,20}";
        // System.out.println(str.matches(regex));
        // 3、由abcdefg以及02468组成 长度在6位以上

        // str = "abcabc";
        // // regex = "[abcdefg02468]{6,}";
        // regex = "[a-g02468]{6,}";
        // System.out.println(str.matches(regex));

        // 4、匹配abcdefg 至少要选择一个
        // str = "asd";
        // regex = "[a-g]+";
        // System.out.println(str.matches(regex));

        // 5、匹配abcdefg 选择一个 或者不选
        // str = "a";
        // regex = "[a-g]?";
        // System.out.println(str.matches(regex));

        // 6、匹配出现任意次数的数字
        // str = "ajld";
        // regex = "\\d*";
        // System.out.println(str.matches(regex));

        // 7、匹配正整数
        // str = "+111111";// +12
        // regex = "(\\+)?(\\d|[1-9]\\d*)";
        // System.out.println(str.matches(regex));

        // 8、匹配负整数
        // str = "0";
        // regex = "\\-([1-9]|[1-9]\\d*)";
        // System.out.println(str.matches(regex));

        // 9、匹配正整数和0
        // str = "+0";
        // regex = "((\\+)?(\\d|[1-9]\\d*))|0";
        // System.out.println(str.matches(regex));

        // 10、匹配电子邮箱
        // str = "1561868458@qq.cn";
        // regex = "\\w{6,12}@\\w{2,5}\\.(com|cn)";
        // System.out.println(str.matches(regex));

        // 11、匹配域名
        // str = "www.baidu.com";
        // regex ="(http://|https://|ftp://)?www\\.[0-9a-zA-Z]{3,6}\\.(com|cn|net|org)";
        // System.out.println(str.matches(regex));

        // 12、匹配月份 1-12
        // str ="12";
        // regex = "[1-9]|1[0-2]";
        // System.out.println(str.matches(regex));

        // 13、匹配日期 1-31
        // 1-9 10-29 30 31
        // str = "22";
        // regex = "[1-9]|[12]\\d|3[01]";
        // System.out.println(str.matches(regex));

        // 14、匹配年龄 1-150岁之间
        // str = "120";
        // regex = "[1-9]|[1-9]\\d|1[0-4]\\d|150";
        // System.out.println(str.matches(regex));
        // 15、匹配手机号码
        // (1)必须11位数
        // (2)必须是1开头 第二个数字:3 4 5 6 7 8 9
        // str = "15084961293";
        // regex = "1[3-9]\\d{9}";
        // System.out.println(str.matches(regex));

        // 16、匹配座机号码

        // 区号---座机号---分机号
        // 0738-4565773-01
        str = "4565773";
        regex = "(0\\d{2,3}\\-)?\\d{7,8}(\\-\\d{1,2})?";
        System.out.println(str.matches(regex));
        
            }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值