Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 309|回复: 0

[正则表达式学习]java正则表达式学习笔记2.2

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-31 00:00:29 | 显示全部楼层 |阅读模式
    排除型字符组:  *
    作用:规定某个位置不容许出现的字符
    *
    形式:以[^...]给出,在方括号内列出不容许出现的字符
    *
    排除型字符组仍然必须匹配一个字符,不能匹配空字符 public class GeneralNumThree {
      public static void main(String[] args) {
       String[] hexDigits = new String[] { "0", "1", "2", "3","4","5","6","7","8","9", "a", "b", "c", "d","e","f"};
       String negativeDigitRegex = "[^0-5]";
       String negativeDigitRegex2 = "[^0-5e-f]";

        for (String hexDigit : hexDigits) {
         if(regexMatch(hexDigit,negativeDigitRegex)){
          System.out.println("16进制数值:" + hexDigit +"能够匹配正则 1:" + negativeDigitRegex);
         }else{
          System.out.println("16进制数值:" + hexDigit +"不能够能够匹配正则1:" + negativeDigitRegex);
        }
      }

        for (String hexDigit : hexDigits) {
         if(regexMatch(hexDigit,negativeDigitRegex2)){
          System.out.println("16进制数值:" + hexDigit +"能够匹配正则 2:" + negativeDigitRegex2);
          }else{
            System.out.println("16进制数值:" + hexDigit +"不能够能够匹配正则2:" + negativeDigitRegex2);
          }
       }
      }
      private static boolean regexMatch(String s, String regex) {
         return s.matches(regex);
       }
    }

    第一个排除0-5之间数字,第二个排除0-5和e-f之间。
    运行结果:
    0不能够匹配正则1:[^0-5]
    1不能够匹配正则1:[^0-5]
    2不能够匹配正则1:[^0-5]
    3不能够匹配正则1:[^0-5]
    4不能够匹配正则1:[^0-5]
    5不能够匹配正则1:[^0-5]
    6能够匹配正则1:[^0-5]
    7能够匹配正则1:[^0-5]
    8能够匹配正则1:[^0-5]
    9能够匹配正则1:[^0-5]
    a能够匹配正则1:[^0-5]
    b能够匹配正则1:[^0-5]
    c能够匹配正则1:[^0-5]
    d能够匹配正则1:[^0-5]
    e能够匹配正则1:[^0-5]
    f能够匹配正则1:[^0-5]
    0不能够匹配正则2:[^0-5e-f]
    1不能够匹配正则2:[^0-5e-f]
    2不能够匹配正则2:[^0-5e-f]
    3不能够匹配正则2:[^0-5e-f]
    4不能够匹配正则2:[^0-5e-f]
    5不能够匹配正则2:[^0-5e-f]
    6能够匹配正则2:[^0-5e-f]
    7能够匹配正则2:[^0-5e-f]
    8能够匹配正则2:[^0-5e-f]
    9能够匹配正则2:[^0-5e-f]
    a能够匹配正则2:[^0-5e-f]
    b能够匹配正则2:[^0-5e-f]
    c能够匹配正则2:[^0-5e-f]
    d能够匹配正则2:[^0-5e-f]
    e不能够匹配正则2:[^0-5e-f]
    f不能够匹配正则2:[^0-5e-f]

    例子:
    public class GeneralNumFour {
       public static void main(String[] args) {
        String[] strings = new String[] { "case", "casa", "caso", "cas"};
        String regex = "cas[^e]";
         for (String string : strings) {
           if(regexMatch(string,regex)){
              System.out.println(string +"能够匹配正则:" + regex);
           }else{
              System.out.println(string +"不能够能够匹配正则:" + regex);
          }
       }
      }

       private static boolean regexMatch(String s, String regex) {
             return s.matches(regex);
        }
    }
    运行结果:
    case不能够匹配正则:cas[^e]
    casa能够匹配正则:cas[^e]
    caso能够匹配正则:cas[^e]
    cas不能够匹配正则:cas[^e]

    cas的情况,就是说排除型字符^e不能匹配任意一个字符,所以整个正则表达式的匹配失败。
    注意:
    排除型字符组的意思是:匹配未列出的字符,而不是“不匹配这个字符”
    例如:cas[^e]匹配cas并且不为e的字符

    本文出自 “leolee” 博客,请务必保留此出处http://jooben.blog.51cto.com/253727/317153
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 19:43 , Processed in 0.305969 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表