Regex正则表达式 --java学习笔记

正则表达式

  • 由一些特定字符组成,代表的是一个规则
  • 作用一:校验数据格式是否合法
  • 作用二:在一段文本中查找满足要求的内容

String提供了一个匹配正则表达式的方法

public boolean matches(String regex(正则表达式))    判断字符串是否匹配正则表达式,匹配返回true,否则false

正则表达式的书写规则:

案例1

需求:检验用户输入的电话、邮箱、时间是否合法

代码:

import java.util.Scanner;

public class CheckPhoneEmailTime {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.print("请输入你要校验的手机号码or邮箱or时间(输入0退出):");
            String str =  sc.nextLine();
            if(str.equals("0")) break;
            if(str.matches("(1[3-9]\\d{9})|" +    //手机号码
                    "0\\d{2,3}-?[1-9]\\d{6,7}|" +        //座机号码
                    "\\w{2,}@\\w{2,20}\\.\\w{2,10}|" +   //邮箱号码
                    "([0-1]\\d)|(2[0-4])((:)|(-)|(\\.))[0-5]\\d((:)|(-)|(\\.))[0-5]\\d"))  //时间格式
                System.out.println("格式正确");
            else
                System.out.println("格式错误");
        }
    }
}

运行结果:

案例2

import java.util.Arrays;

public class Regex_test {
    public static void main(String[] args) {
        // public String replaceAll(String regex , String newStr); 按照正则表达式匹配的内容进行替换

        //1.请把古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴 中间的非中文字符替换成"-"
        String s1 = "古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";
        System.out.println(s1.replaceAll("\\w+", "-")); //+表示一或多

        //2.请把我我我喜欢编编编编编编编编编编编编程程程! 替换成我喜欢编程!
//        (.) 匹配任意字符, ()表示一组
//        \\1  为这个组声明一个组号:1   标记它
//        {2,}  表示这个字至少出现俩次
//        $1取出标记的那个组的内容
        String s2 = "我我我喜欢编编编编编编编编编编编编程程程!";
        System.out.println(s2.replaceAll("(.)\\1{2,}", "$1"));

        //public string[]split(string regex):按照正则表达式匹配的内容进行分割字符串,反回一个字符串数组。
        //3.请把 古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴  中的人名获取出来。
        String s3 = "古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";
        System.out.println(Arrays.toString(s3.split("\\w+")));
    }
}

运行结果:

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A泽予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值