Java正则篇-22-字符类

      上一篇,写了一个QQ号码规则的正则表达式,并没有介绍里面这个正则每个符号代表什么含义。这篇开始,我们就来学习一些Java里正则的符号的含义,先来看看字符类的内容。

 

1.API中字符类含义

打开JDK API 搜索String类,找到match()方法,点击旁边的正则表达式链接。然后下来找到字符类部分,以下截图。


2.字符类练习

 

1)[abc]

 

package regex;

public class Demo1_Regex {

   public static void main(String[] args) {

     String regex = "[abc]"; //表示 a 或 b 或c
     System.out.println("a".matches(regex));
     System.out.println("b".matches(regex));
     System.out.println("c".matches(regex));
     System.out.println("ab".matches(regex));
     System.out.println("abc".matches(regex));
   }
}

输出:

true

true

true

false

false

结论:[abc]表示匹配单个的a或者b或者c

 

2) [^abc]

 

package regex;

public class Demo1_Regex {

   public static void main(String[] args) {
     String regex = "[^abc]"; //表示除a b c之外任意字符
     System.out.println("d".matches(regex));
     System.out.println("中".matches(regex));
     System.out.println("1".matches(regex));
     System.out.println("y".matches(regex));
   }
}

输出:

true

true

true

true

注意上面的是任意字符(char),也就是单个字符,不能是多个字符去匹配,多个就变成了字符串。

 

3)[a-zA-Z]

 

package regex;

public class Demo1_Regex {

   public static void main(String[] args) {

     String regex = "[a-zA-Z]"; //表示除a b c之外任意字符
     System.out.println("a".matches(regex));
     System.out.println("z".matches(regex));
     System.out.println("h".matches(regex));
     System.out.println("m".matches(regex));
     System.out.println("A".matches(regex));
     System.out.println("Z".matches(regex));
     System.out.println("G".matches(regex));
     System.out.println("K".matches(regex));
   }
}

输出:

true

true

true

true

true

true

4)[a-d[m-p]]

表示字符a 到字符d 或者字符m到字符p范围的字符

 

package regex;

 

public class Demo1_Regex {

   public static void main(String[] args) {

     String regex = "[a-d[m-p]]"; //表示除a b c之外任意字符
     System.out.println("a".matches(regex));
     System.out.println("d".matches(regex));
     System.out.println("m".matches(regex));
     System.out.println("p".matches(regex));
     System.out.println("q".matches(regex));
     System.out.println("z".matches(regex));
   }
}

输出结果:

true

true

true

true

false

false

5[a-z&&[def]]

是指从a到z字符范围内和def三个中任意一个有交集的意思,相当于就是[def]的作用。

package regex;

public class Demo1_Regex {

   public static void main(String[] args) {
     String regex = "[a-z&&[def]]";
     System.out.println("a".matches(regex));
     System.out.println("d".matches(regex));
     System.out.println("z".matches(regex));
   }
}

输出结果:

false

true

false

6) [a-z&&[^bc]]

意思是a到z,除了b和c字符

package regex;

public class Demo1_Regex {

   public static void main(String[] args) {
     String regex = "[a-z&&[^bc]]";
     System.out.println("a".matches(regex));
     System.out.println("b".matches(regex));
     System.out.println("c".matches(regex));
     System.out.println("f".matches(regex));
     System.out.println("z".matches(regex));
   }
}

输出:

true

false

false

true

true

7)[a-z&&[^m-p]]

意思是,从a到z范围,不包括m到p范围的其他字符。

 

package regex;

publicclass Demo1_Regex {
   publicstaticvoid main(String[] args) {

     String regex = "[a-z&&[^m-p]]";
     System.out.println("a".matches(regex));
     System.out.println("m".matches(regex));
     System.out.println("o".matches(regex));
     System.out.println("p".matches(regex));
     System.out.println("z".matches(regex));
   }
}

输出:

true

false

false

false

true

       总结:关于字符类的规则,要记住是指匹配单个字符,而不是多个。如果需要匹配字符或者字符范围,就需要想起字符类的这些正则表达式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值