posts - 97,  comments - 93,  trackbacks - 0
          正則表達式主要應用于文本的處理,如檢索,替換,檢查錯誤,文字拆分...實在是一言難盡,如果要全部寫出來,一本書都不差不多。還好oreilly已經為我們出了一本了。
           
          講具體內容以前先給個完整的例子,這樣能有個感性的認識。
          import java.util.regex.*;
          public class Regex{
             public static void main(String[] args){
                  String text = "my email address is "nicky.jcoder@gmail.com";
                  Pattern pattern = Pattern.compile("\\w+@\\w+.\\w+");
                  Matcher matcher = pattern.matcher(text);
                  if(matcher.find()){
                      System.out.println(matcher.group());
                  }
           
             }
          }
          把這段程序用jdk或jcreator或水膩的便了。反正運行起來就是了
          輸出結果:xhinker@163.com
          當你看完下面的東西回頭再看看這段程序就會發現,這不過是小菜一碟
           
          字符和字符類

          表格 A: 字符匹配

          操作

          解釋

          例子

          結果

          .

          單個字符匹配

             .ord

          匹配 “ford”, “lord”, “2ord”,

          [ ]

          多個字符列表

             [cng]

          只會匹配 “cord”, “nord”, 和 “gord”

          [^ ]

          不出現字符列表

             [^cn]

          匹配 “lord”, “2ord”, 等. 但不會匹配 “cord” or “nord”



            [a-zA-Z]

          匹配 “aord”, “bord”, “Aord”, “Bord”等



             [^0-9]

          匹配 “Aord”, “aord”, 等. 但不會匹配“2ord”, 等.

           

          表格 B: 重復操作符

          操作

          解釋

          例子

          結果

          ?

          匹配0次或1次

           “?erd”

          匹配 “berd”, “herd”“erd”等

          *

          匹配0次以上

          “n*rd”

          匹配 “nerd”, “nrd”, “neard”, 等.

          +

          匹配1次以上

          “[n]+erd”

          匹配 “nerd”, “nnerd”, 等., 但不匹配 “erd”

          {n}

          匹配n次

          “[a-z]{2}erd”

          匹配“cherd”, “blerd”, 等. 但不匹配 “nerd”, “erd”, “buzzerd”, 等.

          {n,}

          匹配n次以上

          “.{2,}erd”

          匹配 “cherd” and “buzzerd”, but not “nerd”

          {n,N}

          匹配n-N次

           “n[e]{1,2}rd”

          匹配 “nerd” and “neerd”等

           
          常用符號:
          \d:[0-9]
          \D:[^0-9]
          \w:[a-zA-Z0-9]
          \W:[^a-zA-Z0-9]
           
          {?i):大小寫無關
           
          \b和\B分別表示詞邊界和非詞邊界
          當然上面這些只不過是最常用的,寫出幾個正則表達式是沒有問題了。接下來說說java。
          在java里\有其自身的意義,所以在用\s,\d的時候要加上一個\也就是\\s 、\\d \\(等
          java自1.4后開始支持正則表達式,東西都放在java.util.regex包里,用Pattern生成一個模式對象,然后用matcher進行匹 配。如果要輸出匹配結果的話,一定要記得寫上matcher.find();否則會出錯。當然也可以用替換,這就要看你的喜好拉。想看更多的例子就去 jdk幫助文檔。
          posted on 2006-12-04 13:16 wqwqwqwqwq 閱讀(431) 評論(0)  編輯  收藏 所屬分類: Simple Java
          <2006年12月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456




          常用鏈接

          留言簿(10)

          隨筆分類(95)

          隨筆檔案(97)

          文章檔案(10)

          相冊

          J2ME技術網站

          java技術相關

          mess

          搜索

          •  

          最新評論

          閱讀排行榜

          校園夢網網絡電話,中國最優秀的網絡電話
          主站蜘蛛池模板: 榆树市| 弋阳县| 仲巴县| 乐亭县| 马鞍山市| 鄂尔多斯市| 喜德县| 竹溪县| 玛沁县| 杭州市| 北宁市| 雅江县| 西吉县| 穆棱市| 阳曲县| 专栏| 曲松县| 迁西县| 西吉县| 名山县| 彭山县| 汤原县| 体育| 枣阳市| 寿阳县| 东兰县| 怀化市| 化隆| 亚东县| 延吉市| 阳原县| 宜良县| 桦甸市| 大埔县| 海城市| 嘉祥县| 合川市| 来宾市| 瑞丽市| 宝鸡市| 谢通门县|