Java 正则式 基础 笔记

package com.comcons.regexp;


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


public class Test {


	public static void main(String[] args) {
		// TODO Auto-generated method stub


		Pattern pattern = Pattern.compile("(\\d+)");
		Matcher matcher = pattern.matcher("1233");
		
		System.out.println(matcher.matches());
		System.out.println(matcher.groupCount());
		System.out.println(matcher.group());
		
		System.out.println("ss".matches(".*"));   //true
		System.out.println("ss".matches("s"));    //false
		System.out.println("sss".matches("s*"));  //true
		System.out.println("sss".matches("s?"));   //false
		System.out.println("".matches("s?"));    //这个是true
		
		System.out.println("b".matches("[a-e]|[i-u]"));    //true
		System.out.println("F".matches("[A-Z&&[EFC]]"));   //字符属于A到Z并且在EFC中某一个
		
		System.out.println("\\".matches("\\\\"));    //匹配单反斜线 在正则式中用四条反斜线
		System.out.println("\\\\".matches("\\\\\\\\"));
		System.out.println("^".matches("\\^"));    //[#$^*]    也就是说特殊字符在中括号内的时候不用转意
		
		System.out.println(" \n".matches("^[\\s&&[^\\n]]*\\n$"));    //匹配所有空白行
		
		pattern = Pattern.compile("\\d{3,5}");    //匹配一个数字序列3--5个数字
		String s = "123-34345-223-99";
		matcher = pattern.matcher(s);
		
		System.out.println(matcher.matches());    //false   因为匹配要匹配整个字符串,这个完全不符合
		matcher.reset();    //重置匹配器,经过了前边的matches()方法后匹配已经走到第四个字符,让匹配器重新回到字符串开始
		System.out.println(matcher.find());     //匹配子串,就是在s中查找符合条件的子串,
		System.out.println(matcher.start());    //所匹配出的子串的开始位置  0   必须在找到的情况下才可以输出此位置
		System.out.println(matcher.end());    //不包括end下标   3
		
		
		//分组
		pattern = Pattern.compile("(\\d{3,5})([a-z]{2})");    //小括号代表分组
		s = "123ss-34345dd-223vv-99";
		matcher = pattern.matcher(s);
		while(matcher.find()){     //如果能找到符合条件的子串
			System.out.println(matcher.group());    //不写或者写0 表示匹配出的整个串
			System.out.println(matcher.group(1));   //第一个分组,也就是数字部分
			System.out.println(matcher.group(2));
		}
		
		
		//在正则匹配的过程中有贪婪和非贪婪的匹配原则
		
		//在正则式中开始加入(?i)表示不区分大小写
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值