专栏首页吾爱乐享java之学习正则Greedy 数量词的用法

java之学习正则Greedy 数量词的用法

结果示意图

Greedy 数量词

* X? X,一次或一次也没有 * X* X,零次或多次 * X+ X,一次或多次 * X{n} X,恰好 n 次 * X{n,} X,至少 n 次 * X{n,m} X,至少 n 次,但是不超过 m 次

案例代码

package com.ifenx8.regex;

import javax.print.DocFlavor.STRING;

public class Demo4_Regex {

	/**
	 * A:Greedy 数量词 
		* X? X,一次或一次也没有
		* X* X,零次或多次
		* X+ X,一次或多次
		* X{n} X,恰好 n 次 
		* X{n,} X,至少 n 次 
		* X{n,m} X,至少 n 次,但是不超过 m 次 
	 */
	public static void main(String[] args) {
		demo1();//	X? X,一次或一次也没有
		demo2();//	X* X,零次或多次
		demo3();//	X+ X,一次或多次
		demo4();//	X{n} X,恰好 n 次 
		demo5();//	X{n,} X,至少 n 次 
		String regex = "[abc]{5,14}";//出现5次到14次之间
		System.out.println("abcac".matches(regex));//出现5次,返回true
		System.out.println("abcacaaabbbccc".matches(regex));//出现大于等于5次小于等于14次,返回true
		System.out.println("abcc".matches(regex));//出现4次 不等于5次,返回false
		System.out.println("asdfb".matches(regex));//虽然有5个字符 但是有不包含其中的字符,返回false
		System.out.println("=========");
	}

	public static void demo5() {
		String regex = "[abc]{5,}";//出现5次及5次以上
		System.out.println("abcac".matches(regex));//出现5次,返回true
		System.out.println("abcacaaabbbccc".matches(regex));//出现大于5次,返回true
		System.out.println("abcc".matches(regex));//出现4次 不等于5次,返回false
		System.out.println("asdfb".matches(regex));//虽然有5个字符 但是有不包含其中的字符,返回false
		System.out.println("=========");
	}

	public static void demo4() {
		String regex = "[abc]{5}";//刚好出现5次
		System.out.println("abcac".matches(regex));//出现5次,返回true
		System.out.println("abcacaaabbbccc".matches(regex));//出现大于5次,返回false
		System.out.println("abcc".matches(regex));//出现4次 不等于5次,返回false
		System.out.println("asdfb".matches(regex));//虽然有5个字符 但是有不包含其中的字符,返回false
		System.out.println("=========");
	}

	public static void demo3() {
		String regex = "[abc]+";//表示出现一次或者多次
		System.out.println("a".matches(regex));//出现一次,返回true
		System.out.println("".matches(regex));//出现0次,返回false
		System.out.println("bbbbccc".matches(regex));//出现多次,返回true
		System.out.println("d".matches(regex));//不出现,返回false
		System.out.println("==========");
	}

	public static void demo2() {
		String regex = "[abc]*";//表示出现0次或者多次
			System.out.println("aaaccb".matches(regex));//出现多次,返回true
			System.out.println("a".matches(regex));//出现一次,返回true
			System.out.println("".matches(regex));//出现0次,返回true
			System.out.println("d".matches(regex));//没有出现,返回false
			System.out.println("=========");
	}

	public static void demo1() {
		String regex ="[abc]?";//表示在abc中的一个或者一个也没有
		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("".matches(regex));//true
		System.out.println("================");
	}

}

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

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

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

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

    吾爱乐享
  • 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

扫码关注云+社区

领取腾讯云代金券