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);
}
}