HelloWorld 善戰(zhàn)者,求之于勢,不責于人;故能擇人而任勢。

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

            BlogJava :: 首頁 ::  :: 聯(lián)系 ::  :: 管理 ::
            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());
            }
            // 使用組, 輸出<>里的內(nèi)容, 輸出: '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目前的發(fā)展史是由{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 閱讀(329) 評論(1)  編輯  收藏 所屬分類: java

          評論

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

            回復  更多評論
            

          主站蜘蛛池模板: 梁平县| 宾川县| 肇庆市| 西安市| 信丰县| 曲阜市| 五寨县| 金阳县| 娱乐| 迁西县| 兴义市| 沐川县| 嵩明县| 乐山市| 和平县| 双桥区| 邹平县| 祁门县| 霍州市| 铁岭县| 蓝田县| 尤溪县| 玉门市| 大渡口区| 六安市| 岳普湖县| 神农架林区| 会理县| 景东| 乐平市| 枝江市| 天峻县| 谷城县| 韶关市| 平利县| 噶尔县| 盐池县| 隆林| 永寿县| 红河县| 揭东县|