正则表达式入门(Java版)

前端之家收集整理的这篇文章主要介绍了正则表达式入门(Java版)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_301_1@

@H_301_1@基本语法及快捷符号

@H_301_1@参考《JavaNIO》

@H_301_1@

@H_301_1@InternetSource

http://www.jb51.net/article/31251.htm

http://www.jb51.net/article/16829.htm

http://www.iteye.com/topic/301465

http://www.jb51.cc/article/p-dgscxyyn-yn.html

@H_301_1@

@H_301_1@使用流程

@H_301_1@·写出正则表达式,生成Pattern实例,相当于一个定位器,定位主串中自己感兴趣的那部分。

@H_301_1@·Matchermather=parrent.matcher(“主串”)

@H_301_1@·调用matcher的各种方法来执行模式匹配成功之后的操作。

@H_301_1@如:

@H_301_1@while(matcher.find()){......};//循环取出匹配成功的模式子串

@H_301_1@matcher.appentReplacement(sb,要替换的字符串);//sb中追加替换掉的模式字串

@H_301_1@matcher.replaceAll(要替换的字符串);

@H_301_1@matcher.groupCount();//模式串中()符号获取的组的长度

@H_301_1@matcher.group(index);//置于如何看group(1)group(2)...是代表正则表达式的那一部分请到《JavaNIOP167

@H_301_1@·直接用String类处理。

@H_301_1@分割:String[]rs=s.split("分割标记");

@H_301_1@替换:str=str.replaceAll("被替换的","替换的");

@H_301_1@

@H_301_1@

@H_301_1@

@H_301_1@

@H_301_1@功能函数例子

@H_301_1@·对字符串的分割

@H_301_1@EX1

@H_301_1@1Strings="aa:bb:cc";

@H_301_1@2String[]rs=":");//以冒号为分隔符!!

@H_301_1@EX2

@H_301_1@Stringstr="薪水,职位姓名;年龄性别";

@H_301_1@String[]dataArr=str.split("[,\s;]");//以,或空格或;为分隔符!!

@H_301_1@for(StringstrTmp:dataArr){

@H_301_1@System.out.println(strTmp);

@H_301_1@}

@H_301_1@

@H_301_1@·对字符串的替换和删除

@H_301_1@EX1

@H_301_1@Stringstr="@@abc@d@";

@H_301_1@str=str.replaceAll("@","#");//#号替换@号!!

@H_301_1@System.out.println(str);

@H_301_1@EX2

@H_301_1@Patternp=Pattern.compile("m(o+)n",Pattern.CASE_INSENSITIVE);

@H_301_1@//Pattern类的matcher()方法生成一个Matcher对象

@H_301_1@Matcherm=p.matcher("moonmooonMonmooooonMooon");

@H_301_1@StringBuffersb=newStringBuffer();

@H_301_1@//使用find()方法查找第一个匹配的对象

@H_301_1@booleanresult=m.find();

@H_301_1@//使用循环找出模式匹配的内容替换之,再将内容加到sb

@H_301_1@while(result){

@H_301_1@m.appendReplacement(sb,"moon");

@H_301_1@result=m.find();

@H_301_1@}

@H_301_1@//最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;

@H_301_1@m.appendTail(sb);

@H_301_1@System.out.println("替换后内容"+sb.toString());

@H_301_1@

@H_301_1@在某个文件获取一段字符串

@H_301_1@EX1

@H_301_1@3StringregEx=".+\(.+)$";//获取\号之后的任意长度的字符串!!

@H_301_1@4Strings="c:\test.txt";

@H_301_1@5Patternpat=Pattern.compile(regEx);

@H_301_1@6Matchermat=pat.matcher(s);

@H_301_1@7booleanrs=mat.find();

@H_301_1@8for(inti=1;i<=mat.groupCount();i++){

@H_301_1@9  System.out.println(mat.group(i));

@H_301_1@10}

@H_301_1@

@H_301_1@Java中在某个字符串中查询某个字符或者某个子字串

@H_301_1@11Strings="@ShangHaiHongQiaoFeiJiChang";  

@H_301_1@12StringregEx="a|F";//表示aF

@H_301_1@13Patternpat=Pattern.compile(regEx);

@H_301_1@14Matchermat=pat.matcher(s);

@H_301_1@15booleanrs=mat.find();

@H_301_1@

@H_301_1@·group()用法



正则表达式的重点是他的那些语法,其次正则表达式的group()也是一个难点(一个模式串由圆括号括起来就产生了很多的模式子串,可以用group(i)函数来定位这些模式子串)。

猜你在找的正则表达式相关文章