正则表达式中的分组

正则表达式中的分组

正则表达式可以通过" () “来进行分组,更专业的表达就是捕获组,每个完整的” () “可以分为一组,同时,” () “中还可以嵌套” () ",即组之间还可以存在更小的组,以此类推。而编号为0的组,则是正则表达式匹配到的整体,这个规则只要支持正则表达式中捕获组的语言基本上都适用,下面举几个简单实用的小例子

public class Demo7_Regex {
	public static void main(String[] args) {
		//叠词 高高兴兴,快快乐乐
		String regex1 = "(.)\\1(.)\\2";		// \\1代表第一组又出现一次,\\2代表第二组又出现一次
		System.out.println("高高兴兴".matches(regex1));
		System.out.println("快快乐乐".matches(regex1));
		System.out.println("高兴高兴".matches(regex1));
		//叠词 高兴高兴,快乐快乐
		String regex2 = "(..)\\1";		
		System.out.println("高兴高兴".matches(regex2));
		System.out.println("快乐快乐".matches(regex2));
		System.out.println("高高兴兴".matches(regex2));
		/*
		 * 案例:
		 * 1.请按照叠词切割:"sdqqfqkkkmhppppas"
		 * 2.还原字符串:把"我我..要要要....学..学......学编...编编..程程.."还原为"我要学编程"
		 */
		//1.请按照叠词切割:"sdqqfqkkkmhppppas"
		String regex3 = "(.)\\1+";
		String s1 = "sdqqfqkkkmhppppas";
		String[] arr = s1.split(regex3);
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
		System.out.println("===============================");
		//2.还原字符串:把"我我..要要要....学..学......学编...编编..程程.."还原为"我要学编程"
		String regex4 = "\\.";
		String s2 = "我我..要要要....学..学......学编...编编..程程..";
		String s3 = s2.replaceAll(regex4, "");
		System.out.println(s3);
		String s4 = s3.replaceAll("(.)\\1+", "$1");		//$1代表第一组的内容
		System.out.println(s4);
		
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值