<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks

     

    package com.test;

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class PatternTest {
     
     private static void test0() {
      String str = "<biao><>c<b>x";
      Pattern pattern;
      Matcher matcher;
      // 貪婪: 最長匹配 .* : 輸出: <biao><>c<b>
      pattern = Pattern.compile("<.*>");
      matcher = pattern.matcher(str);
      while (matcher.find()) {
      System.out.println(matcher.group());
      }
      // 不知是否非貪婪 .*? : 輸出: <biao>, <>, <b>
      pattern = Pattern.compile("<.*?>");
      matcher = pattern.matcher(str);
      while (matcher.find()) {
      System.out.println(matcher.group());
      }
      // 使用組, 輸出<>里的內容, 輸出: 'biao', ' ', 'b'
      // 0組代表整個表達式, 子組從1開始
      pattern = Pattern.compile("<(.*?)>");
      matcher = pattern.matcher(str);
      while (matcher.find()) {
      System.out.println(">>"+matcher.group(1));
      }
     }
     
     /** 查找以Java開頭的任意字符串 */
     public static void test1() {
      Pattern pattern = Pattern.compile("^Java.*");
      Matcher m = pattern.matcher("Java哈哈");
      System.out.println(m.find());
     }
     
     /** 以多條件分割字符串 */
     public static void test2() {
      Pattern pattern = Pattern.compile("[,|\\+]+");
      String str[] = pattern.split("Java+ Hello World  Java,Hello,,World|Sun");
      if(str != null) {
       for(String s : str) {
        System.out.println(">> " +s);
       }
      }
     }

     /** 文字替換 */
     public static void test3() {
      Pattern pattern = Pattern.compile("abc*");
      Matcher matcher = pattern.matcher("xabcccc測試abd, abcce");
      String str = matcher.replaceAll("(?)");
      System.out.println(str);
     }
     
     /** 文字替換(替換字符)  結果將會是  x(?)測試(?)d, (?) */
     public static void test4() {
      Pattern pattern = Pattern.compile("123|4(567)");
      Matcher matcher = pattern.matcher("0123456789abcde");
      StringBuffer sb = new StringBuffer();
      while(matcher.find()) {
       System.out.println(matcher.group(0));
       System.out.println(matcher.group(1));
       System.out.println(">>"+ matcher.start()+":"+matcher.end());
       matcher.appendReplacement(sb, "(?)");
      }
      matcher.appendTail(sb);
      System.out.println(sb);
     }
     
     public static void test5() {
      String regEx="B(ond)";
           
            String str="My name is Bond. James Bond.";
            
            Pattern p=Pattern.compile(regEx);
            
            Matcher matcher=p.matcher(str);
            
            if(matcher.find()){
                System.out.println(matcher.groupCount());
                System.out.println(matcher.start());
                String group_0 = matcher.group(0);
                String group_1 = matcher.group(1);
                System.out.println("Group 0 " + group_0);
                System.out.println("Group 1 " + group_1);
                System.out.println(str);
            }

     }
     
     // 驗證是否為郵箱地址
     public static void test6() {
      String str="ponline@yahoo.com.cn.jcWe--_*";
      Pattern pattern =
      Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+");
      Matcher matcher = pattern.matcher(str);
      System.out.println(matcher.matches());
     }
     
     /** 去除html 標記  */
     public static void test7() {
      Pattern pattern = Pattern.compile(".+?");
      Matcher matcher = pattern.matcher("<a 測試 href=\"index.html\">主頁</a>");
      matcher.find();
      System.out.println(matcher.group());
      String string = matcher.replaceFirst("");
      System.out.println(string);
     }
     
     /** 查找html 中對應條件字符串 **/
     public static void test8() {
      Pattern pattern = Pattern.compile("href=\"(.+?)\"");
      Matcher matcher = pattern.matcher("<a href=\"index.html\">主頁</a>");
      if(matcher.find())
        System.out.println(matcher.group(1));
     }
     /** 截取http://地址  **/
     public static void test9() {
      Pattern pattern = Pattern.compile("(http://|https://){1}.+");
      Matcher matcher = pattern.matcher("dsdsds<http://dfhf.\\sd-: s//國家gfg-ffdfd>fdf");
      StringBuffer buffer = new StringBuffer();
      while(matcher.find()){              
          buffer.append(matcher.group());        
          buffer.append("\r\n"); 
          System.out.println(buffer.toString());
      }
     }
     
     /** 替換指定{}中文字  **/
     public static void test10() {
      String str = "Java目前的發展史是由{0}年-{1}年";
      String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}};
      System.out.println(replace(str,object));
     }
     
     public static String replace(String sourceString, String[][] object) {
      String temp=sourceString;    
            for(int i=0;i<object.length;i++){
               String[] result=(String[])object[i];
               Pattern    pattern = Pattern.compile(result[0]);
               Matcher matcher = pattern.matcher(temp);
               temp=matcher.replaceAll(result[1]);
            }
            return temp;
     }
     
     public static void main(String[] args) throws Exception{
      PatternTest.test10();
     

     }
    }

     



    </script>

    posted on 2012-02-26 20:04 helloworld2008 閱讀(323) 評論(1)  編輯  收藏 所屬分類: java

    評論

    # re: 常用正則表達式例子 2012-03-17 08:23 化肥
    說的很好,學習了

      回復  更多評論
      

    主站蜘蛛池模板: 亚洲精品免费观看| 免费国产小视频在线观看| 2020国产精品亚洲综合网 | 国产又大又粗又长免费视频| 国产亚洲玖玖玖在线观看| 中文字幕亚洲天堂| 成年人网站免费视频| 特级aaaaaaaaa毛片免费视频| 久久精品国产69国产精品亚洲| 日本最新免费网站| 日韩大片免费观看视频播放| 亚洲老熟女@TubeumTV| 国产男女性潮高清免费网站| 男人j进入女人j内部免费网站 | 光棍天堂免费手机观看在线观看 | 亚洲中文字幕无码一去台湾| 国产精品亚洲精品日韩已方| 国产一卡二卡四卡免费| 亚洲精品视频免费| 亚洲一日韩欧美中文字幕在线| 亚洲精品无码午夜福利中文字幕| 成人免费视频软件网站| 久久狠狠躁免费观看2020| 亚洲aⅴ无码专区在线观看| 亚洲国产精品久久久久| 日韩亚洲国产二区| 国产精品视频免费一区二区| 日韩电影免费观看| 污视频网站在线免费看| 在线观看日本亚洲一区| 91精品国产亚洲爽啪在线观看| 亚洲日韩VA无码中文字幕| 免费看的黄色大片| 91在线视频免费看| 中文字幕亚洲免费无线观看日本| 一区二区三区在线观看免费| 亚洲日韩一区二区三区| 亚洲中文字幕久在线| 久久久国产精品亚洲一区| 亚洲中文字幕无码一区| 亚洲精品亚洲人成在线观看下载|