正则表达式入门(Java版)
基本语法及快捷符号 参考《JavaNIO》
InternetSource http://www.aspzz.cn/article/31251.htm http://www.aspzz.cn/article/16829.htm http://www.iteye.com/topic/301465 http://www.52php.cn/article/p-dgscxyyn-yn.html
使用流程 ·写出正则表达式,生成Pattern实例,相当于一个定位器,定位主串中自己感兴趣的那部分。 ·Matchermather=parrent.matcher(“主串”); ·调用matcher的各种方法来执行模式匹配成功之后的操作。 如: while(matcher.find()){......};//循环取出匹配成功的模式子串 matcher.appentReplacement(sb,要替换的字符串);//往sb中追加替换掉的模式字串 matcher.replaceAll(要替换的字符串); matcher.groupCount();//模式串中()符号获取的组的长度 matcher.group(index);//置于如何看group(1)、group(2)...是代表正则表达式的那一部分请到《JavaNIO》P167 ·直接用String类处理。 分割:String[]rs=s.split("分割标记"); 替换:str=str.replaceAll("被替换的","替换的");
功能函数例子 ·对字符串的分割 EX1: 1Strings="aa:bb:cc"; 2String[]rs=":");//以冒号为分隔符!! EX2: Stringstr="薪水,职位姓名;年龄性别"; String[]dataArr=str.split("[,s;]");//以,或空格或;为分隔符!! for(StringstrTmp:dataArr){ System.out.println(strTmp); }
·对字符串的替换和删除 EX1: Stringstr="@@abc@d@"; str=str.replaceAll("@","#");//用#号替换@号!! System.out.println(str); EX2: Patternp=Pattern.compile("m(o+)n",Pattern.CASE_INSENSITIVE); //用Pattern类的matcher()方法生成一个Matcher对象 Matcherm=p.matcher("moonmooonMonmooooonMooon"); StringBuffersb=newStringBuffer(); //使用find()方法查找第一个匹配的对象 booleanresult=m.find(); //使用循环找出模式匹配的内容替换之,再将内容加到sb里 while(result){ m.appendReplacement(sb,"moon"); result=m.find(); } //最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里; m.appendTail(sb); System.out.println("替换后内容是"+sb.toString());
在某个文件中获取一段字符串 EX1: 3StringregEx=".+(.+)$";//获取号之后的任意长度的字符串!! 4Strings="c:test.txt"; 5Patternpat=Pattern.compile(regEx); 6Matchermat=pat.matcher(s); 7booleanrs=mat.find(); 8for(inti=1;i<=mat.groupCount();i++){ 9 System.out.println(mat.group(i)); 10}
Java中在某个字符串中查询某个字符或者某个子字串 11Strings="@ShangHaiHongQiaoFeiJiChang"; 12StringregEx="a|F";//表示a或F 13Patternpat=Pattern.compile(regEx); 14Matchermat=pat.matcher(s); 15booleanrs=mat.find();
·group()的用法
正则表达式的重点是他的那些语法,其次正则表达式的group()也是一个难点(一个模式串由圆括号括起来就产生了很多的模式子串,可以用group(i)函数来定位这些模式子串)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |