基本语法及快捷符号
参考《JavaNIO》
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
使用流程
·写出正则表达式,生成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();
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)函数来定位这些模式子串)。