java正则表达式匹配字符串

今天练习java比赛题时,忘记了java的正则表达式怎么用,特地查了一下。觉得用好正则表达式真的是能有意想不到的效果。

Talk is cheap,show you their code

//解释内容见注释

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

public class java正则表达式 {

	public static void main(String[] args) {
		//1.字符串与正则表达式直接匹配
		//字符串
		String s1="hello",s2="world",s3="alanqiao";
		//正则表达式
		String pattern="[^(a|e|o|u)]+[a|e|o|u]+[^(a|e|o|u)]+[a|e|o|u]+";
		
		System.out.println("字符串"+s3+"与模式"+pattern+"是否匹配?"+Pattern.matches(pattern, s3));
		System.out.println("----------------");
		
		
		//2.正则表达式的捕获组
		//正则表达式加上了括号,一个括号一组
		String patt="([^(a|e|o|u)]+)([a|e|o|u]+)([^(a|e|o|u)]+)([a|e|o|u]+)";
		Pattern p=Pattern.compile(patt);
		Matcher m=p.matcher(s3);
		//打印捕获组的数量
		System.out.println("count="+m.groupCount());
		
		if (m.find( )) {
			//注:下标为0的捕获组是完整的匹配字符串
			for(int i=0;i<=m.groupCount();i++) {
				//打印捕获组在字符串中的下标
				System.out.println("start="+m.start(i));
				//打印捕获组
				System.out.println("匹配串:"+m.group(i));
				System.out.println();
			}
			
		} else {
			System.out.println("NO MATCH");
		}

	}

}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值