正则表达式:符合一定规则的表达式。 作用:用于专门操作字符串。 特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。 所以学习正则表达式,就是在学习一些特殊符号的使用。 好处:可以简化对字符串的复杂操作。 弊端:符号定义越多,正则越长,阅读性越差。 具体操作功能: 1,匹配:Stringmatches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。 2,切割:Stringsplit(); 3,替换:StringreplaceAll(regex,str);如果regex中有定义组,可以在第二参数中通过$符号获取正则表达式中的已有的组。 classRegexDemo { publicstaticvoidmain(String[]args) { //demo(); //System.out.println((char)11); //checkTel(); //splitDemo("zhangsan.lisi.wangwu","."); //splitDemo("c:abca.txt",""); //splitDemo("erkktyqqquizzzzzo","(.)1+");//按照叠词完成切割。为了可以让规则的结果被重用 //可以将规则封装成一个组。用()完成。组的出现都有编号。 //从1开始。想要使用已有的组可以通过n(n就是组的编号)的形式来获取。 Stringstr="wer1389980000ty1234564uiod234345675f";//将字符串中的数组替换成#。 //replaceAllDemo(str,"d{5,}","#"); Stringstr1="erkktyqqquizzzzzo";//将叠词替换成$.//将重叠的字符替换成单个字母。zzzz->z replaceAllDemo(str1,"(.)1+","$1"); } publicstaticvoidreplaceAllDemo(Stringstr,Stringreg,StringnewStr) { str=str.replaceAll(reg,newStr); System.out.println(str); } publicstaticvoidsplitDemo(Stringstr,Stringreg) { //Stringreg="+";//按照多个空格来进行切割 String[]arr=str.split(reg); System.out.println(arr.length); for(Strings:arr) { System.out.println(s); } } publicstaticvoidcheckTel() { Stringtel="16900001111"; StringtelReg="1[358]d{9}"; System.out.println(tel.matches(telReg)); } publicstaticvoiddemo() { Stringstr="b23a23456789"; Stringreg="[a-zA-Z]d*"; booleanb=str.matches(reg); System.out.println(b); } publicstaticvoidcheckQQ() { Stringqq="123a454"; Stringregex="[1-9]d{4,14}"; booleanflag=qq.matches(regex); if(flag) System.out.println(qq+"...isok"); else System.out.println(qq+"...不合法"); } publicstaticvoidcheckQQ_1() { Stringqq="1882345a0"; intlen=qq.length(); if(len>=5&&len<=15) { if(!qq.startsWith("0"))//Integer.parseInt("12a");NumberFormatException { try { longl=Long.parseLong(qq); System.out.println("qq:"+l); } catch(NumberFormatExceptione) { System.out.println("出现非法字符......."); } } else { System.out.println("不可以0开头"); } } else { System.out.println("长度错误"); } }
}
经典案例网页爬虫
importjava.io.*; importjava.util.regex.*; importjava.net.*; importjava.util.*; classRegexTest2 { publicstaticvoidmain(String[]args)throwsException { getMails_1(); } publicstaticvoidgetMails_1()throwsException { URLurl=newURL("http://192.168.1.254:8080/myweb/mail.html"); URLConnectionconn=url.openConnection(); BufferedReaderbufIn=newBufferedReader(newInputStreamReader(conn.getInputStream())); Stringline=null; Stringmailreg="w+@w+(.w+)+"; Patternp=Pattern.compile(mailreg); while((line=bufIn.readLine())!=null) { Matcherm=p.matcher(line); while(m.find()) { System.out.println(m.group()); } } } publicstaticvoidgetMails()throwsException { BufferedReaderbufr= newBufferedReader(newFileReader("mail.txt")); Stringline=null; Stringmailreg="w+@w+(.w+)+"; Patternp=Pattern.compile(mailreg); while((line=bufr.readLine())!=null) { Matcherm=p.matcher(line); while(m.find()) { System.out.println(m.group()); } } } } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|