正则表达式的练习

正则表达式中的元字符及其意义(正则表达式中的写法)

  • . 任意一个字符

  • \\d 0-9的任意一个数字

  • \\D 任意一个非数字字符

  • \\s 空白字符,如'\t'、'\n'

  • \\S 非空白字符

  • \\w 可用于标识符的字符,但不包括“$”

  • \\p{Lower} 小写字母a~z

  • \\p{Upper} 小写字母A~Z

  • \\p{ASCII} ASCII字符

  • \\p{Alpha} 字母字符

  • \\{Digit} 十进制数字 即0~9

  • \\{Alnum} 数字或者字母字符

  • \\{Punct} 标点符号

  • \\p{Graph} 可见字符

  • \\p{print} 可打印字符

  • \\p{Blank} 空格或者制表符

  • \\p{Cntrl} 控制字符:[\x00-\x1F\x7F]

在正则表达式中,“.”代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符“.”,必须使用转义字符“\”。

限定修饰符

  • ? 0次或1次

  • * 0次或多次

  • + 一次或多次

  • {n} 正好出现n次

  • {n,} 至少出现n次

  • {n,m} 出现n~m次

  • [\u4e00-\u9fa5] 中文字的范围写法

  • $代表结尾

正则表达式的练习

/*
        * String 支持正则表达式 (.replaceAll(),.replaceFirst(),.split(),.matches())
        * 1.判断字符串有没有大写字母
        * 2.判断字符串有没有汉字
        * 3.判断字符串有没有数字
        * 4.判断一个字符串是不是标准的手机号
        *
        * */
        String str = "hello16java16mysql18html";
        System.out.println(str);
        //删除指定的数字
        System.out.println(str.replace("6",""));

        //删除所有的数字,通过for循环删除0-9的数字,并每次循环又重新赋值给str
        for (int i = 0; i < 10; i++) {
            str = str.replace(String.valueOf(i), "");
        }
        System.out.println(str);

        //------------使用正则表达式,删除所有数字
        String str1 = "hello162145java16mysql18html";
        System.out.println(str1);
        System.out.println("-----------------------------");
        //使用replaceAll,\\d表示0-9
        System.out.println(str1.replaceAll("\\d",""));
        System.out.println("------------------------------");
        //删除不是数字的值
        System.out.println(str1.replaceAll("\\D",""));
        System.out.println("-------------------------------");
        //删除首次出现的字符串匹配删除 \\d+
        System.out.println(str1.replaceFirst("\\d+",""));
        System.out.println("====================================");
        String[] langs = str1.split("\\d+"); //通过数字分割成为数组
        System.out.println(Arrays.toString(langs));
    }
 public static void main(String[] args) {
        String str = "hello";
        //判断字符是否有大写
        //.*[A-Z].*
        //.代表任意字符
        if (str.matches("^.*[A-Z].*$")){
            System.out.println(String.format("%s:有大写字母",str));
        } else {
            System.out.println(String.format("%s:没有大写字母",str));
        }

        //判断是不是有数字
        System.out.println("hello".matches("^.*//d.*$"));

        //判断有没有汉字
        System.out.println("HH你好hh".matches("^.*[\u4e00-\u9fa5].*$"));

        //判断是不是手机号
        String phone = "18569874761";
        System.out.println(phone.matches("^1[1,3,8]\\d{9}$"));
        System.out.println("\\d{9}");

        //判断是不是纯数字
        String name = "jake小手";
        String p = "^[\u4e00-\u9fa5]+$";
        if (name.matches(p)) {
            System.out.println("纯数字");
        } else {
            System.out.println("不是纯数字");
        }


        String str1 = "他的手机号是:18569874761,他在郑州。";
        System.out.println(str1.matches(".*\\d.*"));
        //判断str1是不是标准的手机格式
        System.out.println(str1.matches("^1[1,3,8]\\d{9}"));
        //判断里面有没有手机号
        System.out.println(str1.matches("^.*1[1,3,8]\\d{9}.*"));

        //是不是中文是不是一个汉字 ^开头 $代表结尾{1}
        System.out.println("中文".matches("^[\u4e00-\u9fa5]$"));
        System.out.println("中文".matches("^[\u4e00-\u9fa5]+$"));
        System.out.println("中文".matches("[\u4e00-\u9fa5]+"));

        //  * 代表是{0,} ? {0,1}
        System.out.println("中文a".matches("[\u4e000-\u9fa5]"));

        System.out.println("中文".matches("[\u4e00-\u9fa5]{2,6}"));//true
        //是不是全英文
        System.out.println("abc".matches("[a-zA-Z]+"));//true
        System.out.println("ab c".matches("[a-zA-Z]+"));//false
        System.out.println("ab123c".matches("[a-zA-Z]+"));//false
        System.out.println("abDDDc".matches("[a-zA-Z]{1,}"));//true

        //是不是全数字 "\\d+" "\\d*"
        System.out.println("0000".matches("\\d"));//false
        System.out.println("0000".matches("\\d+"));//true
        System.out.println("0000".matches("\\d?"));//false
        System.out.println("0000".matches("\\d*"));//true

    }

Pattern类:pattern对象是一个正则表达式的编译表示,Pattern类没有公共构造方法,要创建一个Pattern对象,你必须首先调用其他公共静态编译方法,他返回一个Pattern对象,该方法接收正则表达式作为他的第一个参数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值