(5)正则表达式——Java



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="[email protected]"; //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); } }

你可能感兴趣的:(java,正则表达式)