java的正则表达式

含义:就是记录文本的规则的代码,是一种用于文本匹配的工具,是一个匹配表达式比起通配符?和*,正则表达式更能精确的描述你的需求。

正则表达式只要涉及API中的:java.util.reges包中的Pattern类和Matcher类。

 

Pattern:java中专门进行正则表达式编译的类(即一个实例就是代表正则表达式本身)

Matcher:通过解释Patter,对字符串序列执行匹配操作的引擎(用来判断是否匹配)

常用的匹配:

1、内容

.    :匹配出换行符以外的任意字符

\w :匹配字母或者数字或下划线(\W匹配其他字符)

\s :匹配任意的空白符

\d  :匹配数字

\b  :匹配单词的开始或者结束

^   :匹配字符串的开始

$   :匹配字符串的结束

2.次数

 

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

[]   :中括号表示可选

典型的调用方式是:

 Pattern p = Pattern.compile("a*b");
 Matcher m = p.matcher("aaaaab");
 boolean b = m.matches();

关于正则表达式的测试:

public class Pattern1 {
	@Test
	public void Demo1(){
		//字符串匹配
		String str="011-123456";
		//匹配原则:一个0,加两个数,一个减号,后面是6个数组
		boolean mc=str.matches("0\\d{2}-\\d{6}");
		System.out.println(mc);//true
		str="011-123456789";
		mc=str.matches("0\\d{2}-\\d{6}");
		System.out.println(mc);//false,因为String是一种完全匹配
		str="老干妈";
		//匹配原则:老后面可以接零个或者多个字符。
		mc=str.matches("老.*");
	}
	
	@Test
	public void Demo2(){
		String str="011-123456";
		//Pattern:java中专门进行正则表达式编译的类
		Pattern p=Pattern.compile("0\\d{2}-\\d{6}");
		//Matcher:通过解释Patter,对字符串序列执行匹配操作的引擎(用来判断是否匹配)
		Matcher mc=p.matcher(str);//匹配成功
		//这里和String匹配不一样String是完全匹配而,这里是部分匹配。
	}
	
	@Test
	public void Demo3(){
		String str="1-1112-2223-3334-4445-5556";
		Pattern p=Pattern.compile("\\d-\\d{3}");
		Matcher mc=p.matcher(str);
		String res="";
		while(mc.find()){//find相当于指针
			res=mc.group();
			System.out.println(res);
			/*1-111
			2-222
			3-333
			4-444
			5-555*/
		}
		//也可以指定位置
		mc.find(2);
	    res=mc.group();
	    System.out.println(res);//2-222
		
	}
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值