JAVA练习题38:正则表达式基本练习

正则表达式知识点:点这里跳转

使用正则表达式完成如下需求

需求:

  1. 编写正则表达式验证用户输入的手机号码是否满足要求
  2. 编写正则表达式验证用户输入的邮箱号是否满足要求
  3. 编写正则表达式验证用户输入的电话号码是否满足要求
  4. 举例:
    1. 验证手机号码 13112345678   13712345667 13945679028   139654790273
    2. 验证座机电话号码 020–2324242 02122422   027-42424 0712-3242434
    3. 验证邮箱号码 3232323@qq.com   zhangsan@itcast.cnn   dlei0009@l63.com dlei0009@pci.com.cn

核心思想:拿着一个正确的数据,从左到右依次去写

public class FTest {
    public static void main(String[] args) {
        /*
         * 使用正则表达式完成如下需求
         * 需求:
         *      1.编写正则表达式验证用户输入的手机号码是否满足要求
         *      2.编写正则表达式验证用户输入的邮箱号是否满足要求
         *      3.编写正则表达式验证用户输入的电话号码是否满足要求
         * 举例:
         *      验证手机号码      13112345678     13712345667             13945679028         139654790273
         *      验证座机电话号码  020--2324242     02122422               027-42424           0712-3242434
         *      验证邮箱号码      3232323@qq.com   zhangsan@itcast.cnn    dlei0009@l63.com    dlei0009@pci.com.cn
         * */

        //核心思想:拿着一个正确的数据,从左到右依次去写

        //1.手机号码
        //13112345678   共11位
        //分成三部分:
        //第一部分:1  表示手机号码只能以1开头
        //第手机号码第二位只能是3-9之间的数字
        //第三部分:\\d{9}  表二部分:[3-9]  表示示任意数字可以出现9次,也只能出现9次
        String regex1 = "1[3-9]\\d{9}";
        System.out.println("13112345678".matches(regex1));   //true
        System.out.println("13712345667".matches(regex1));   //true
        System.out.println("13945679028".matches(regex1));   //true
        System.out.println("139654790273".matches(regex1));   //false

        System.out.println("----------------------------");

        //2.座机号码
        //020--2324242     02122422               027-42424           0712-3242434
        //思路:
        //在书写座机号正则的时候需要把正确的数据分为三部分
        //一:区号  0\\d{2,3}
        //          0:表示区号一定是以0开头的
        //          \\d{2,3}:表示区号从第二位开始可以是任意的数字,可以出现2到3次
        //二:-     ?表示次数,0次或1次
        //三:号码   号码的第一位也不能以0开头,从第二位开始可以是任意的数字,号码的总长度为:5-10位
        String regex2 = "0\\d{2,3}-?[1-9]\\d{4,9}";
        System.out.println("020-2324242".matches(regex2));   //true
        System.out.println("02122422".matches(regex2));       //true
        System.out.println("027-42424".matches(regex2));      //true
        System.out.println("0712-3242434".matches(regex2));    //true

        System.out.println("----------------------------");

        //3.邮箱号码
        //3232323@qq.com   zhangsan@itcast.cnn    dlei0009@l63.com    dlei0009@pci.com.cn
        //思路
        //在书写邮箱号码正则的时候需要把正确的数据分为三部分
        //第一部分:@的左边  \\w+
        //         任意的字母数字下划线,至少出现一次就可以了
        //第二部分:@  只能出现一次
        //第三部分:
        //    3.1    .的左边 [\\w&&[^_]]{2,6}
        //           任意的字母加数字,总共出现2-6次(此时不能出现下划线)
        //    3.2    .要写成\\.才行
        //    3.3    大写字母,小写字母都可以,只能出现2-3次  [a-zA-Z]{2,3}
        //    我们可以把3.2和3.3看成一组,这一组可以出现1次或者两次
        String regex3 = "\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}";
        System.out.println("3232323@qq.com".matches(regex3));       //true
        System.out.println("zhangsan@itcast.cnn".matches(regex3));      //true
        System.out.println("dlei0009@l63.com".matches(regex3));        //true
        System.out.println("dlei0009@pci.com.cn".matches(regex3));      //true
        String a = "";
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值