拼搏的人生

          拼搏在繁華的都市

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            7 隨筆 :: 13 文章 :: 6 評論 :: 0 Trackbacks

          在新的JDK中加入了對使用正則表達式的模式匹配的支持。正則表達式是根據文本匹配模式的方法-類似于編譯器生成類文件的工作原理。
          在正則表達式的上下文中,模式是序列的文本表示方法。例如,我們想知道一個字符序列中是否存在"money"這個詞,就可以使用模式money,
          因為這是精確表示該字符串的方法。
          ?? 我們這樣來檢驗用戶輸入的是否為一合法的email地址:
          Code:
          import java.util.regex.Pattern;
          import java.util.regex.Matcher;

          public class TestRegex
          {
          ?public boolean isEmail(String email)
          ?{
          ???????????? //指定使用的模式
          ??Pattern pattern=Pattern.compile
          ??????????? ("\\p{Digit}+@\\w+\\.\\p{Alpha}{2,3}");
          ??String[] words=pattern.split(email);
          ??Matcher matcher=pattern.matcher(email);
          ??if(matcher.find()&&words.length==0)
          ??? return true;
          ??else
          ??? return false;
          ?}
          }
          來看怎么用它:
          Code:
          public class Client
          {
          ?public static void main(String[] args)
          ?{
          ??TestRegex regex=new TestRegex();
          ??String s1="DuYang163@gmail.com";
          ??String s2="feiyang@126.123.com";
          ??System.out.println(s1+(regex.isEmail(s1)?"是":"不是")+"Email格式!");
          ??System.out.println(s2+(regex.isEmail(s2)?"是":"不是")+"Email格式!");
          ?}
          }
          一些常用的表達式格式:
          文字(Literal): 表達式內任何不具有特殊意義的字符都被看做是一個文字,并與自身匹配。
          量詞(Quantifier): 某些字符或者表達式,他們被用來計算一個文字或分組可以字符列中出現的次數,以便該序列與表達式匹配。
          例:
          ? 表示出現一次或根本不出現。
          * 表示出現零次或一次以上(含一次)。
          + 表示出現一次或多次。
          字符類(Character class): 一個字符類就是方括號內的一個字符集,其中,匹配可以是括號內的任意一個字符。可以把字符和量詞結合起來,例如,[acegikmoqsuwy*]
          ??????????????????????? 將是只包含字母表中奇數字母的任意字符列。某些字符列是預先定義好的:
          \d-數字(0到9)
          \D-非數字
          \s-空白字符,如制表符或換行符
          \S-非空白字符
          \w-單字符(a到z,A到Z,0到9以及下劃線)
          \W-非單字字符(其他任意字符)
          Posix 字符類(Posix character class): 某些字符僅在用于US-ASCII比較時才有效。
          例如:
          \p{Lower}-小寫字符
          \p{Upper}-大寫字符
          \p{ASCII}-所有ASCII字符
          \p{Alpha}-字符字符(\p{Lower}與\p{Upper}相結合)
          \p{Digit}-從0到9的數字
          \p{Alnum}-字母數字字符
          范圍(Range): 使用短線(dash)來指定范圍。例如:[A-J]表示從A到J的大寫字母。
          否定(Negation): 使用脫字符^表示否定字符。例如:[^A-K]表示除A到K之外的任何字符。

          posted on 2006-05-05 08:04 Dalston.Young 閱讀(236) 評論(1)  編輯  收藏 所屬分類: Java Core

          評論

          # re: 正則表達式小談 2006-06-23 04:59 sdfsdaf@##
          @#@#@#@#@###  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 泸水县| 蒙山县| 台南县| 高要市| 西贡区| 武清区| 东阳市| 江都市| 鄄城县| 广丰县| 浦江县| 西乌| 达孜县| 岑溪市| 鸡西市| 五峰| 越西县| 镇江市| 长顺县| 临安市| 桃园市| 浙江省| 若尔盖县| 舒城县| 潮州市| 元江| 务川| 左云县| 安远县| 高州市| 纳雍县| 马关县| 彩票| 花莲县| 康马县| 武鸣县| 启东市| 丰县| 外汇| 永宁县| 景德镇市|