Mark's Java Blog
          MyEclipse, Java EE, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript,SOA
          正則表達(dá)式在字符串處理上有著強(qiáng)大的功能,sun在jdk1.4加入了對(duì)它的支持

          下面簡(jiǎn)單的說(shuō)下它的4種常用功能:

          查詢(xún):

          String str="abc efg ABC";
          正則表達(dá)式在字符串處理上有著強(qiáng)大的功能,sun在jdk1.4加入了對(duì)它的支持

          下面簡(jiǎn)單的說(shuō)下它的4種常用功能:

          查詢(xún):

          String str="abc efg ABC";

          String regEx="a|f";   //表示a或f

          Pattern p=Pattern.compile(regEx);

          Matcher m=p.matcher(str);

          boolean rs=m.find();

          如果str中有regEx,那么rs為true,否則為flase。如果想在查找時(shí)忽略大小寫(xiě),則可以寫(xiě)成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);

          提取:
          String regEx=".+\\\\(.+)$";

          String str="c:\\dir1\\dir2\\name.txt";

          Pattern p=Pattern.compile(regEx);

          Matcher m=p.matcher(str);

          boolean rs=m.find();

          for(int i=1;i<=m.groupCount();i++){

          System.out.println(m.group(i));

          }

          以上的執(zhí)行結(jié)果為name.txt,提取的字符串儲(chǔ)存在m.group(i)中,其中i最大值為m.groupCount();

          分割:

          String regEx="::";

          Pattern p=Pattern.compile(regEx);

          String[] r=p.split("xd::abc::cde");

          執(zhí)行后,r就是{"xd","abc","cde"},其實(shí)分割時(shí)還有跟簡(jiǎn)單的方法:

          String str="xd::abc::cde";

          String[] r=str.split("::");

          替換(刪除):

          String regEx="a+"; //表示一個(gè)或多個(gè)a

          Pattern p=Pattern.compile(regEx);

          Matcher m=p.matcher("aaabbced a ccdeaa");

          String s=m.replaceAll("A");

          結(jié)果為"Abbced A ccdeA"

          如果寫(xiě)成空串,既可達(dá)到刪除的功能,比如:

          String s=m.replaceAll("");

          結(jié)果為"bbced  ccde"

          附:

          \d 等於 [0-9] 數(shù)字 
          \D 等於 [^0-9] 非數(shù)字 
          \s 等於 [ \t\n\x0B\f\r] 空白字元 
          \S 等於 [^ \t\n\x0B\f\r] 非空白字元 
          \w 等於 [a-zA-Z_0-9] 數(shù)字或是英文字 
          \W 等於 [^a-zA-Z_0-9] 非數(shù)字與英文字 

          ^ 表示每行的開(kāi)頭
          $ 表示每行的結(jié)尾

          String regEx="a|f";   //表示a或f

          Pattern p=Pattern.compile(regEx);

          Matcher m=p.matcher(str);

          boolean rs=m.find();

          如果str中有regEx,那么rs為true,否則為flase。如果想在查找時(shí)忽略大小寫(xiě),則可以寫(xiě)成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);

          提取:
          String regEx=".+\\\\(.+)$";

          String str="c:\\dir1\\dir2\\name.txt";

          Pattern p=Pattern.compile(regEx);

          Matcher m=p.matcher(str);

          boolean rs=m.find();

          for(int i=1;i<=m.groupCount();i++){

          System.out.println(m.group(i));

          }

          以上的執(zhí)行結(jié)果為name.txt,提取的字符串儲(chǔ)存在m.group(i)中,其中i最大值為m.groupCount();

          分割:

          String regEx="::";

          Pattern p=Pattern.compile(regEx);

          String[] r=p.split("xd::abc::cde");

          執(zhí)行后,r就是{"xd","abc","cde"},其實(shí)分割時(shí)還有跟簡(jiǎn)單的方法:

          String str="xd::abc::cde";

          String[] r=str.split("::");

          替換(刪除):

          String regEx="a+"; //表示一個(gè)或多個(gè)a

          Pattern p=Pattern.compile(regEx);

          Matcher m=p.matcher("aaabbced a ccdeaa");

          String s=m.replaceAll("A");

          結(jié)果為"Abbced A ccdeA"

          如果寫(xiě)成空串,既可達(dá)到刪除的功能,比如:

          String s=m.replaceAll("");

          結(jié)果為"bbced  ccde"

          附:

          \d 等於 [0-9] 數(shù)字 
          \D 等於 [^0-9] 非數(shù)字 
          \s 等於 [ \t\n\x0B\f\r] 空白字元 
          \S 等於 [^ \t\n\x0B\f\r] 非空白字元 
          \w 等於 [a-zA-Z_0-9] 數(shù)字或是英文字 
          \W 等於 [^a-zA-Z_0-9] 非數(shù)字與英文字 

          ^ 表示每行的開(kāi)頭
          $ 表示每行的結(jié)尾
          posted on 2008-04-01 14:02 Mark 閱讀(263) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java SE
           
          主站蜘蛛池模板: 大姚县| 霍林郭勒市| 沁阳市| 双峰县| 理塘县| 仙桃市| 高清| 望奎县| 星子县| 汝阳县| 怀宁县| 桦川县| 河东区| 西青区| 璧山县| 建德市| 交城县| 镇巴县| 洪湖市| 宿迁市| 包头市| 金阳县| 宝清县| 舞钢市| 来宾市| 石屏县| 安平县| 凤台县| 广元市| 敦煌市| 宁国市| 石林| 新宾| 怀仁县| 称多县| 北京市| 景泰县| 姚安县| 东莞市| 石门县| 廊坊市|