专栏首页吾爱乐享java之学习正则字符类的用法

java之学习正则字符类的用法

结果示意图

正则字符类的用法

A:字符类

  •  [abc] a、b 或 c(简单类)
  • [^abc] 任何字符,除了 a、b 或 c(否定)
  • [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
  • [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
  • [a-z&&[def]] d、e 或 f(交集)
  • [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
  • [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

B:matches()方法的用法

编译给定正则表达式并尝试将给定输入与其匹配。

案例代码

package com.ifenx8.regex;

public class Demo2_Regex {

	/**
	 * A:字符类
	    [abc] a、b 或 c(简单类) 
		[^abc] 任何字符,除了 a、b 或 c(否定) 
		[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) 
		[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) 
		[a-z&&[def]] d、e 或 f(交集) 
		[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去) 
		[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去) 
		
		B:matches()方法的用法
		编译给定正则表达式并尝试将给定输入与其匹配。

	 */
	public static void main(String[] args) {
		demo1();//[abc] a、b 或 c(简单类) 
		demo2();//[^abc] 任何字符,除了 a、b 或 c(否定) 结果和demo1完全相反
		demo3();//[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
		demo4();//[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) 
		demo5();//[a-z&&[def]] d、e 或 f(交集) 
		demo6();//[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
		demo7();//[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去) 
		
	
	}

	public static void demo7() {
		String regex = "[a-z&&[^m-p]]";//a-z 之间除了m-p之间以外的全部字符
		System.out.println("a".matches(regex));//true
		System.out.println("m".matches(regex));//false
		System.out.println("p".matches(regex));//false
		System.out.println("0".matches(regex));//false
		System.out.println("#".matches(regex));//false
		
	}

	public static void demo6() {
		String regex = "[a-z&&[^bc]]";//a-z之间除了b c以外的全部字符
		System.out.println("a".matches(regex));//true
		System.out.println("b".matches(regex));//false
		System.out.println("c".matches(regex));//false
		System.out.println("1".matches(regex));//false
		System.out.println("#".matches(regex));//false
		System.out.println("==========");
	}

	public static void demo5() {
		String regex = "[a-z&&[def]]";//a-z和def的交集  就相当于[def]
		System.out.println("a".matches(regex));//false
		System.out.println("e".matches(regex));//true
		System.out.println("f".matches(regex));//true
		System.out.println("1".matches(regex));//false
		System.out.println("#".matches(regex));//false
		System.out.println("============");
	}

	public static void demo4() {
		String regex = "[a-d[m-p]]";//a-d或者m-p的全部字母 
		System.out.println("a".matches(regex));//true
		System.out.println("d".matches(regex));//true
		System.out.println("m".matches(regex));//true
		System.out.println("p".matches(regex));//true
		System.out.println("1".matches(regex));//false
		System.out.println("#".matches(regex));//false
		System.out.println("================");
	}

	public static void demo3() {
		String regex = "[a-zA-Z]";//a-z A-Z之间的全部字符,包含头和尾的字符
		System.out.println("a".matches(regex));//true
		System.out.println("b".matches(regex));//true
		System.out.println("A".matches(regex));//true
		System.out.println("B".matches(regex));//true
		System.out.println("1".matches(regex));//false
		System.out.println("#".matches(regex));//false
		System.out.println("===============");
	}

	public static void demo2() {
		String regex = "[^abc]";//除了a b c 以外的任何字符
		System.out.println("a".matches(regex));//false
		System.out.println("b".matches(regex));//false
		System.out.println("c".matches(regex));//false
		System.out.println("d".matches(regex));//true
		System.out.println("1".matches(regex));//true
		System.out.println("#".matches(regex));//true
		System.out.println("================");
	}

	public static void demo1() {
		String regex = "[abc]";//字符a b 或者c中的其中一个字符
		System.out.println("a".matches(regex));//true
		System.out.println("b".matches(regex));//true
		System.out.println("c".matches(regex));//true
		System.out.println("d".matches(regex));//false
		System.out.println("1".matches(regex));//false
		System.out.println("#".matches(regex));//false
		System.out.println("=================");
	}

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java之学习正则预定义字符类的用法

    吾爱乐享
  • java之学习正则Greedy 数量词的用法

    吾爱乐享
  • java之学习正则表达式的分组功能及案例

    吾爱乐享
  • java之学习正则预定义字符类的用法

    吾爱乐享
  • java之学习正则Greedy 数量词的用法

    吾爱乐享
  • Java网络编程--Netty中的ByteBuf

    由于JDK中提供的ByteBuffer无法动态扩容,并且API使用复杂等原因,Netty中提供了ByteBuf。

    CodingDiray
  • Java 8 新特性(三)新的日期时间类

    老日期类 一说到在Java中处理日期和时间,我们首先想到的肯定是java.util.Date类。确实,由于很多教材和文献都比较老,所以大多数人学习Java的时候...

    乐百川
  • (转载)Java8新的日期API LocalDate, LocalTime

    由于Java Date的各种问题,Java8推出了新的日期API,很受一拨人的追捧。

    Ryan-Miao
  • Java 8: LocalDate、LocalTime 、LocalDateTime 处理日期时间

    原文链接:https://blog.csdn.net/weixin_39800144/article/details/...

    微风-- 轻许--
  • cmd输出控制台传递的参数

    Happy、Liu

扫码关注云+社区

领取腾讯云代金券