import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReTest {
//正则表达式的用处:
public static void main(String args[]){
//1、在字符串包含验证时matches()
//查找以Java开头,任意字符结尾的字符串
Pattern pattern1=Pattern.compile("^Java.*");
Matcher matcher1=pattern1.matcher("Java不是人");
boolean b=matcher1.matches();
System.out.println(b);//true
//2、以多条件分割字符串时split()
Pattern pattern2=Pattern.compile("[,|]+");
String[] strs=pattern2.split("Java Hello World Java,Hello,,World|Sun");
for(int i=0;i<strs.length;i++){
System.out.print(strs[i]+" ");
}//Java Hello World Java Hello World Sun
System.out.println();
//3、文字替换(首次出现字符)replaceFirst()
Pattern pattern3 = Pattern.compile("正则表达式");
Matcher matcher3 = pattern3.matcher("正则表达式 Hello World,正则表达式 Hello World");
//替换第一个符合正则的数据
System.out.println(matcher3.replaceFirst("Java"));
//Java Hello World,正则表达式 Hello World
//4、文字替换(全部)replaceAll()
Pattern pattern4 = Pattern.compile("正则表达式");
Matcher matcher4 = pattern4.matcher("正则表达式 Hello World,正则表达式 Hello World");
//替换全部符合正则的数据
System.out.println(matcher4.replaceAll("Java"));
//Java Hello World,Java Hello World
//5、文字替换(置换字符)appendReplacement()、appendTail()
Pattern pattern5 = Pattern.compile("正则表达式");
Matcher matcher5 = pattern5.matcher("正则表达式 Hello World,正则表达式 Hello World ");
StringBuffer sbr = new StringBuffer();
while (matcher5.find()) {
matcher5.appendReplacement(sbr, "Java");
}
System.out.println(sbr);//Java Hello World,Java
matcher5.appendTail(sbr);
System.out.println(sbr);//Java Hello World,Java Hello World
//6、验证是否为邮箱地址
String str="ceponline@yahoo.com.cn";
//Pattern.CASE_INSENSITIVE:对大小写不敏感
Pattern pattern6 = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+",Pattern.CASE_INSENSITIVE);
Matcher matcher6 = pattern6.matcher(str);
System.out.println(matcher6.matches());
//true
//7、去除html标记
//+?非贪婪模式,Pattern.DOTALL:匹配空格换行等
Pattern pattern7 = Pattern.compile("<.+?>", Pattern.DOTALL);
Matcher matcher7=pattern7.matcher("<a href=\"index.html\">主页</a>");
String string = matcher7.replaceAll("");
System.out.println(string);//主页
//8、查找html中对应条件字符串
//()一个子组,0为匹配到的整个字符串,1为第一个子组
Pattern pattern8 = Pattern.compile("href=\"(.+?)\"");
Matcher matcher8 = pattern8.matcher("<a href=\"index.html\">主页</a>");
if(matcher8.find()){//匹配的话
System.out.println(matcher8.group(0));//href="index.html"
System.out.println(matcher8.group(1));//index.html
}
//9、截取http://地址
Pattern pattern9 = Pattern.compile("(http://|https://){1}[\\w[.-/]:]+");
Matcher matcher9 = pattern9.matcher("dsdsds<http://dsds//gfgffdfd>fdf");
StringBuffer buffer = new StringBuffer();
while(matcher9.find()){
buffer.append(matcher9.group());
buffer.append("\r\n");
}
System.out.println(buffer.toString());//http://dsds//gfgffdfd
//10、替换指定{}中文字
String st = "Java目前的发展史是由{0}年-{1}年";
String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}};
for(int i=0;i<object.length;i++){
String[] result=object[i];
Pattern pattern = Pattern.compile(result[0]);
Matcher matcher = pattern.matcher(st);
st=matcher.replaceAll(result[1]);
}
System.out.println(st);
}
}
(5)正则表达式——Java
最新推荐文章于 2024-07-29 14:22:26 发布