正则表达式(十七)——不捕获分组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jikefzz1095377498/article/details/82783401
package com.wy.regular;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegularTest {

	public static void main(String[] args) {
		/*
		 *  non-capturing groups不捕获
		 *  .{3}(?=a) 以a结尾的三个字符(比较常见)
		 *  (?=a).{3} 以a开头的三个字符 a66
		 *  (?!a).{3} 前面不能是a的三个字符 44a 66b
		 *  .{3}(?!a) 44a 66b
		 *  .{3}(?<!a) 从后往前分析,结尾不是a 4a6
		 *  .{3}(?<a) 异常
		 *  .{3}(?<=a) 44a
		 */
		Pattern pattern = Pattern.compile(".{3}(?<=a)");
		String str = "44a66b";
		Matcher matcher = pattern.matcher(str);
		while (matcher.find()) {
			pri(matcher.group());
		}
	}

	private static void pri(String str) {
		System.out.println(str);
	}
}

猜你喜欢

转载自blog.csdn.net/jikefzz1095377498/article/details/82783401