正则表达式

正则表示

  • 正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性
  • 找API:Pattern

常用的matches表达式规则

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

基础代码演示:

1.查看qq是否符合要求

/**
     * 判断是否符合qq号的要求
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(ZZBDS("123"));
        System.out.println(ZZBDS("123456"));
        System.out.println(ZZBDS("12345678911"));
        System.out.println(ZZBDS("123a"));
    }
    public static boolean ZZBDS(String qq){
        return qq!=null && qq.matches("\\d{4,10}");
    }

2.查看余额人民币是否符合要求,这里0开头的也算,基础并未过多逻辑判断

 public static void ZZBDS(){
        Scanner sc = new Scanner(System.in);
        while (true){
            String a = sc.next();
            if(a.matches("\\d{1,10}\\.?\\d{0,2}")){
                    System.out.println("cg");
                    break;
            }else {
                System.out.println("sb");
            }
        }

3.查看电话号码是否符合要求

 public static void checkTel(){
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请您输入您的电话号码:");
            String tel = sc.next();
            // 判断邮箱格式是否正确   027-3572457  0273572457
            if(tel.matches("0\\d{2,6}-?\\d{5,20}")){
                System.out.println("格式正确,注册完成!");
                break;
            }else {
                System.out.println("格式有误!");
            }
        }
    }

4.查看手机号是否符合要求

public static void Phone(){
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请您输入您的注册手机号码:");
            String phone = sc.next();
            // 判断手机号码的格式是否正确
            if(phone.matches("1[3-9]\\d{9}")){
                System.out.println("手机号码格式正确,注册完成!");
                break;
            }else {
                System.out.println("格式有误!");
            }
        }
        }

5.查看邮箱是否符合规则

 public static void checkEmail(){
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请您输入您的注册邮箱:");
            String email = sc.next();
            // 判断邮箱格式是否正确   3268847878@qq.com
            // 判断邮箱格式是否正确   3268847dsda878@163.com
            // 判断邮箱格式是否正确   3268847dsda878@pci.com.cn
            if(email.matches("\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2}")){
                System.out.println("邮箱格式正确,注册完成!");
                break;
            }else {
                System.out.println("格式有误!");
            }
        }
    }

正则表达式的删除和替换套用

  • split();
  • reolaceAll();
public static void main(String[] args) {
        String gua = "西瓜dhdfhd42哈密瓜43fdffdfaf香瓜";

        String[] arr = gua.split("\\w+");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

        String gua1 = gua.replaceAll("\\w+", "  ,");
        System.out.println(gua1);
    }

正则表达式爬取信息

可以爬东西,抽象的写一个方法,可以去爬一些想要的资料,懂的都懂,看代码自己找启发

public static void main(String[] args) {
        String rs = "某某房地产,电话011-120120,或者联系邮箱" +
                "niuma@zpy.com,电话13012038551,0405412594" +
                "邮箱xigua@wz.cab,400-120-799 ,400802820";

        // 需求:从上面的内容中爬取出 电话号码和邮箱。
        // 1、定义爬取规则,字符串形式
        //|就是或的意思,一组一组分成
        String regex = "(\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2})|(1[3-9]\\d{9})" +
                "|(0\\d{2,6}-?\\d{5,20})|(400-?\\d{3,9}-?\\d{3,9})";

        // 2、把这个爬取规则编译成匹配对象。
        Pattern pattern = Pattern.compile(regex);

        // 3、得到一个内容匹配器对象
        Matcher matcher = pattern.matcher(rs);

        // 4、开始找了
        //find开始找的意思,返回值是boolean类型
        //group一组一组的找出来,和上面|对应一组
        while (matcher.find()) {
            String rs1 = matcher.group();
            System.out.println(rs1);
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值