java常用类库-正则表达式【2】

5Pattern类和Matcher类:

 

1)Pattern类主要是表示一个规则的意思:正则表达式的规则要在Pattern类中使用。

2)Matcher类主要表示使用Pattern类指定好的验证规则。

        public static Pattern compile(String regex)

将给定的正则表达式编译到模式中。

 

       public static Pattern compile(String regex  int flags)

将给定的正则表达式编译到具有给定标志的模式中。

 

        public Matcher matcher(CharSequence input)

创建匹配给定输入与此模式的匹配器。

 

        public String[] split(CharSequence input)

围绕此模式的匹配拆分给定输入序列。

此方法的工作方式类似于使用给定的输入序列和限制参数零调用两参数 (java.lang.CharSequence, int) split} 方法。因此,得到的数组中不包括尾部空字符串。

 

 

例1:验证日期 1983-04-22

 

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


public class RegexDemo03 {

	/**
	 * @param args
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "1983-04-22";//定义日期字符串
		String pat = "\\d{4}-\\d{2}-\\d{2}";//定义正则表达式
		Pattern p = Pattern.compile(pat);//实例化Pattern类
		Matcher m = p.matcher(str);//实例化Matcher类
		if(m.matches()){
			System.out.println("日期格式正确!");
		}else{
			System.out.println("日期格式不正确!");
		}
		
	}

}


运行截图:

 

 

例二:将字符串进行拆分:

 

public String[] split(CharSequence input)

围绕此模式的匹配拆分给定输入序列。

此方法的工作方式类似于使用给定的输入序列和限制参数零调用两参数 (java.lang.CharSequence, int) split} 方法。因此,得到的数组中不包括尾部空字符串。

 

 

import java.util.regex.Pattern;


public class RegexDemo04 {

	/**
	 * @param args
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//将字符串按数字进行拆分
		String str = "A1B22C35255D4444E8460F630636";//定义字符串
		String pat = "\\d+";//定义正则
		Pattern p = Pattern.compile(pat);//实例化Pattern类
		String s[] = p.split(str);//按数字拆分字符串
		for(int i=0;i<s.length;i++){
			System.out.print(s[i]+"\t");
		}
	}

}

 

运行截图:

 

例子3:字符串替换

 

public String replaceAll(String replacement)

替换模式与给定替换字符串相匹配的输入序列的每个子序列。

 

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


public class RegexDemo04 {

	/**
	 * @param args
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//将字符串中的数字进行替换为下划线
		String str = "A1B22C35255D4444E8460F630636";//定义字符串
		String pat = "\\d+";//定义正则
		Pattern p = Pattern.compile(pat);//实例化Pattern类
		Matcher m = p.matcher(str);
		String newStr = m.replaceAll("_");
		System.out.println(newStr);
	}

}


运行截图:

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值