java处理字符串Patter与Matcher类与其方法详解

1.使用Patter与Matcher类
Pattern 类表示编译的正则表达式。
使用 Pattern 类的静态方法 compile() 获取 Pattern 类引用。  
以下代码段用于创建 Pattern 类的引用:
Pattern myPattern = Pattern.compile("Expression");
Pattern 对象 可用于创建 Matcher 对象,如以下代码段所示: 
Matcher myMatcher = myPattern.matcher("Expression");
为比较这两个表达式,Matcher 类提供 matches() 方法。
matches() 方法返回 true 的条件是,matcher对象中的表达式与 pattern 对象中
指定的模式相匹配。 否则它将返回值 false。
以下代码段显示了 matches() 方法的用法:
 boolean myBoolean = myMatcher.matches();

使用方法如下代码所示:

package java编程.正则表达式;
import java.util.regex.Matcher;
import java.util.regex.Pattern;    //引入Patter和Matcher包
public class TestRegx {
	public static void main(String[] args) {
		Pattern myPattern = Pattern.compile("[abc]at");
		Matcher myMatcher = myPattern.matcher("bat");
		boolean myBoolean = myMatcher.matches();
		if (myBoolean)
		//匹配成功返回值为true,反之为false
			System.out.println("Expression Matched");
		else
			System.out.println("Expression Not Matched");
	}
}


2.0使用Matcher类的方法
2.0.1 appenReplacement方法
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class appenReplacement {
//寻找替换的字符,替换后截断字符串,输出前者以替换的字符
	public static void main(String[] args) {
		Pattern myPatten =Pattern.compile("john");
		Matcher myMatcher=myPatten.matcher("john dose this ,john does that");
		StringBuffer s3=new StringBuffer();
		while(myMatcher.find()){
			myMatcher.appendReplacement(s3, "sam");
			System.out.println(s3.toString());
		}
	}
}
/*执行俩次循环,当在字符串当中匹配到了john进行替换截断字符串,
输出前者,结果如下
sam
sam dose this ,sam
*/

2.0.2 replaceAll 方法
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class replaceAll {
//将字符在字符串指定替换后完全输出 
	public static void main(String[] args) {
		Pattern myPatten =Pattern.compile("john");
		Matcher myMatcher=myPatten.matcher("john dose this ,and john does that");
		String s2=myMatcher.replaceAll("sam");
		System.out.println("replaceAll = "+ s2);
	}
}
/*
输出结果如下
replaceAll = sam dose this ,and sam does that     
*/

2.0.3 appendTail 方法
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class appendTail {
//
	public static void main(String[] args) {
		Pattern myPatten =Pattern.compile("john");
		Matcher myMatcher=myPatten.matcher("john dose this ,john does that");
		StringBuffer s3=new StringBuffer();
		while(myMatcher.find()){
			myMatcher.appendReplacement(s3, "sam");
			System.out.println(s3.toString());
		}
		myMatcher.appendTail(s3);
		System.out.println(s3.toString());
	}
}

2.0.4 StartAndEnd 方法
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class StartAndEnd {
//返回的指定字符在字符串出现的位置,从0开始而不是从1开始
	public static void main(String[] args) {
		Pattern myPatten =Pattern.compile("a");
		Matcher myMatcher=myPatten.matcher("this is a desk");
		
		while(myMatcher.find()){
			System.out.println("Match start at:"+myMatcher.start(0));
			System.out.println("Match start at:"+myMatcher.end(0));
		}
	}
}

2.0.5 replaceFrist方法
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class replaceFrist {
//将字符在字符串指定替换后完全输出 
//与replaceAll 相似,该方法只替换第一个相同的字符串
	public static void main(String[] args) {
		Pattern myPatten =Pattern.compile("john");
		Matcher myMatcher=myPatten.matcher("john dose this ,and john does that");
		String s2=myMatcher.replaceFirst("sam");
		System.out.println("replaceFirst = "+ s2);
	}
}
/*输出结果,如下
replaceFirst = sam dose this ,and john does that
*/
2.1使用Pattern类的方法
2.1.0 String pattern方法
package java编程.正则表达式;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Stringpattern {
//用于返回编译的正则表达式
public static void main(String[] args) {
	String s1="are you ok?";
	Pattern myPattern =Pattern.compile(s1);
	String s2=myPattern.pattern();
	System.out.println(s2);
}
}
2.1.1 String [ ]split方法
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Stringsplit {
//根据模式和限制拆分指定输入序列
	public static void main(String[] args) {
		Pattern myPattern = Pattern.compile(":");
		String[] split = myPattern.split("One:Two:three", 3);  // 3 2 1
		for (String element : split) {
			System.out.println("element=" + element);
		}
	}
}
/*输出结果如下:
element=One
element=Two
element=three
*/
2.1.2 static boolean matcher方法
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class staticbooleanmatcher {
//用于编译指定正则表达式保密柜尝试根据它来匹配指定输入
	public static void main(String[] args) {
		boolean matcher=Pattern.matches("you","you");  
		//俩字符串相同匹配后输出为true反之为false
		System.out.println("matcher ="+matcher);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Modify_QmQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值