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

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

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

    無線&移動互聯網技術研發

    換位思考·····
    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    正則表達式(本人常用)

    Posted on 2009-05-08 13:55 Gavin.lee 閱讀(307) 評論(0)  編輯  收藏 所屬分類: java SE & EE
    基礎(摘)
      

    \\  反斜杠
    \t  間隔 ('\u0009')
    \n  換行 ('\u000A')
    \r  回車 ('\u000D')
    \d  數字 等價于[0-9]
    \D  非數字 等價于[^0-9]
    \s  空白符號 [\t\n\x0B\f\r]
    \S  非空白符號[^\t\n\x0B\f\r]
    \w  單獨字符[a-zA-Z_0-9]
    \W  非單獨字符 [^a-zA-Z_0-9]
    \f  換頁符
    \e  Escape
    \b  一個單詞的邊界
    \B  一個非單詞的邊界
    \G  前一個匹配的結束
    /***************************************************/

    ^為限制開頭
    ^java  條件限制為以Java為開頭字符
    /***************************************************/

    $為限制結尾
    java$  條件限制為以java為結尾字符
    /***************************************************/

    .條件限制除\n以外任意一個單獨字符
    java..  條件限制為java后除換行外任意兩個字符

    /***************************************************/

    加入特定限制條件「[]」
    [a-z]  條件限制在小寫a to z范圍中一個字符
    [A-Z]  條件限制在大寫A to Z范圍中一個字符
    [a-zA-Z] 條件限制在小寫a to z或大寫A to Z范圍中一個字符
    [0-9]  條件限制在小寫0 to 9范圍中一個字符
    [0-9a-z] 條件限制在小寫0 to 9或a to z范圍中一個字符
    [0-9[a-z]] 條件限制在小寫0 to 9或a to z范圍中一個字符(交集)
    /***************************************************/

    []中加入^后加再次限制條件[^]
    [^a-z]  條件限制在非小寫a to z范圍中一個字符
    [^A-Z]  條件限制在非大寫A to Z范圍中一個字符
    [^a-zA-Z] 條件限制在非小寫a to z或大寫A to Z范圍中一個字符
    [^0-9]  條件限制在非小寫0 to 9范圍中一個字符
    [^0-9a-z] 條件限制在非小寫0 to 9或a to z范圍中一個字符
    [^0-9[a-z]] 條件限制在非小寫0 to 9或a to z范圍中一個字符(交集)
    /***************************************************/

    在限制條件為特定字符出現0次以上時,可以使用「*」
    J*  0個以上J
    .*  0個以上任意字符
    J.*D  J與D之間0個以上任意字符
    /***************************************************/

    在限制條件為特定字符出現1次以上時,可以使用「+」
    J+  1個以上J
    .+  1個以上任意字符
    J.+D  J與D之間1個以上任意字符
    /***************************************************/

    在限制條件為特定字符出現有0或1次以上時,可以使用「?」
    JA?  J或者JA出現
    /***************************************************/

    限制為連續出現指定次數字符「{a}」
    J{2}  JJ
    J{3}  JJJ
    /***************************************************/

    文字a個以上,并且「{a,}」
    J{3,}  JJJ,JJJJ,JJJJJ,???(3次以上J并存)
    文字個以上,b個以下「{a,b}」
    J{3,5}  JJJ或JJJJ或JJJJJ
    /***************************************************/
    兩者取一「|」
    J|A  J或A
    Java|Hello Java或Hello



     
    「()」中規定一個組合類型
    比如,我查詢<a href=\"index.html\">index</a>中<a href></a>間的數據,可寫作<a.*href=\".*\">(.+?)</a>

    在使用Pattern.compile函數時,可以加入控制正則表達式的匹配行為的參數:
    Pattern Pattern.compile(String regex, int flag)

    flag的取值范圍如下:
    Pattern.CANON_EQ     當且僅當兩個字符的"正規分解(canonical decomposition)"都完全相同的情況下,才認定匹配。比如用了這個標志之后,表達式"a\u030A"會匹配"?"。默認情況下,不考慮"規 范相等性(canonical equivalence)"。
    Pattern.CASE_INSENSITIVE(?i)     默認情況下,大小寫不明感的匹配只適用于US-ASCII字符集。這個標志能讓表達式忽略大小寫進行匹配。要想對Unicode字符進行大小不明感的匹 配,只要將UNICODE_CASE與這個標志合起來就行了。
    Pattern.COMMENTS(?x)     在這種模式下,匹配時會忽略(正則表達式里的)空格字符(譯者注:不是指表達式里的"\\s",而是指表達式里的空格,tab,回車之類)。注釋從#開始,一直到這行結束。可以通過嵌入式的標志來啟用Unix行模式。
    Pattern.DOTALL(?s)     在這種模式下,表達式'.'可以匹配任意字符,包括表示一行的結束符。默認情況下,表達式'.'不匹配行的結束符。
    Pattern.MULTILINE
    (?m)     在這種模式下,'^'和'$'分別匹配一行的開始和結束。此外,'^'仍然匹配字符串的開始,'$'也匹配字符串的結束。默認情況下,這兩個表達式僅僅匹配字符串的開始和結束。
    Pattern.UNICODE_CASE
    (?u)     在這個模式下,如果你還啟用了CASE_INSENSITIVE標志,那么它會對Unicode字符進行大小寫不明感的匹配。默認情況下,大小寫不敏感的匹配只適用于US-ASCII字符集。
    Pattern.UNIX_LINES(?d)     在這個模式下,只有'\n'才被認作一行的中止,并且與'.','^',以及'$'進行匹配

     

    package com.yixun.wap;

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

    import com.Gavin.tools.util.WriteLog;
    /** *//**
     * 
     * @descripte check format
     * 
    @author Gavin.lee
     * @date 2009-5-20下午06:37:49
     * 
    @version 1.0
     *
     
    */

    public class CheckFormat {

        
    //驗證郵箱
        
        
    public static boolean checkMail(String str) {
            Pattern pattern 
    = Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",Pattern.CASE_INSENSITIVE);
            Matcher matcher 
    = pattern.matcher(str);
            
    return matcher.matches();
        }

    //驗證中文,不能驗證中文標點
        public static boolean checkChinese(String str) {
            Pattern pattern 
    = Pattern.compile("[\u4e00-\u9fa5]+$"); 
            Matcher match 
    = pattern.matcher(str); 
            
    return match.matches();
        }

    //雙字節(包括中文)
        public static boolean checkDoubleByte(String str) {
            Pattern pattern 
    = Pattern.compile("[^\\x00-\\xff]+$");
            Matcher match 
    = pattern.matcher(str); 
            
    return match.matches();
        }
        

    //驗證英文、數字、下劃線的組合  5-16位
        public static boolean checkENU(String str) {
            Pattern pattern 
    = Pattern.compile("[a-zA-Z0-9_]{4,15}$+$");  //^\w+$
            Matcher match = pattern.matcher(str);
            
    return match.matches();
        }

    //驗證英文、數字的組合
        public static boolean checkEAN(String str) {
            Pattern pattern 
    = Pattern.compile("[a-zA-Z0-9]+$");
            Matcher match 
    = pattern.matcher(str);
            
    return match.matches();
        }

    //只英文
        public static boolean checkEnglish(String str) {
            Pattern pattern 
    = Pattern.compile("[a-zA-Z]+$");
            Matcher match 
    = pattern.matcher(str);
            
    return match.matches();
        }

    //只數字  
        public static boolean checkNumber(String str) {
            Pattern pattern 
    = Pattern.compile("[0-9]+$");        //[^0-9]   非數字
            Matcher match = pattern.matcher(str);
            
    return match.matches();
        }

    /**//*
     * 大于1 浮點數、整數
     * 01.99    false
     * 0.99        false
     * 1.        false
     * 1.0        true
     * 1.00        true
     * 
     
    */

        
    public static boolean checkFloat(String str) {
            Pattern pattern 
    = Pattern.compile("[^0][0-9]*.{0,1}[0-9]{0,2}+$");        //[^0-9]   非數字
            Matcher match = pattern.matcher(str);
            
    if(str.indexOf("."== 0{
                
    return false;
            }
     else if (str.indexOf("."== (str.length()-1)) {
                
    return false;
            }

            
            
    return match.matches();
        }

    //身份證驗證   \d{15}|\d{18}
        public static boolean checkIdentityCard(String str) {
            Pattern pattern 
    = Pattern.compile("\\d{15}|\\d{18}+$");        
            Matcher match 
    = pattern.matcher(str);
            
    return match.matches();
        }


    //IP地址    \d+\.\d+\.\d+\.\d+
        public static boolean checkIP(String str) {
            Pattern pattern 
    = Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d++$");        
            Matcher match 
    = pattern.matcher(str);
            
    return match.matches();
        }

        
    //國內固話    \d{3}-\d{8}|\d{4}-\d{7}
        public static boolean checkPhoneNum(String str) {
            Pattern pattern 
    = Pattern.compile("\\d{3}-\\d{8}|\\d{4}-\\d{7}+$");
            Matcher match 
    = pattern.matcher(str);
            
    return match.matches();
        }

    //QQ驗證 10000開始    [1-9][0-9]{4,}
        public static boolean checkQQ(String str) {
            Pattern pattern 
    = Pattern.compile("[1-9][0-9]{4,}+$");        
            Matcher match 
    = pattern.matcher(str);
            
    return match.matches();
        }

    //URL判定  http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?
        public static boolean checkURL(String str) {        
            Pattern pattern 
    = Pattern.compile("http://([\\w-]+\\.)+[\\w-]+([\\w-.?%&=]*)?+$");        
            Matcher match 
    = pattern.matcher(str);
            
    return match.matches();
        }


        
    public static void main(String args[]) {
    //        System.out.println(CheckFormat.checkMail("doingjava@126.com"));
    //        System.out.println(CheckFormat.checkChinese("易訊天空"));
    //        System.out.println(CheckFormat.checkDoubleByte("易訊天空")); 
    //        System.out.println(CheckFormat.checkENU("doing_java126")); 
    //        System.out.println(CheckFormat.checkEAN("500wan"));
    //        System.out.println(CheckFormat.checkEnglish("wan"));
    //        System.out.println(CheckFormat.checkNumber("500"));
    //        System.out.println(CheckFormat.checkIdentityCard("342401198606038578"));
    //        System.out.println(CheckFormat.checkIP("192.168.9.17"));
    //        System.out.println(CheckFormat.checkPhoneNum("0564-2649344"));
    //        System.out.println(CheckFormat.checkQQ("496508302"));
    //        System.out.println(CheckFormat.checkURL("http://wap.500wan.com.cn?id=1&name=gavin"));
    //        WriteLog.writeLog("CheckFormat", "context");
            System.out.println(CheckFormat.checkFloat("1.00"));
    //        System.out.println((".99").indexOf(".") == 0);
        }

    }


     

     

    主站蜘蛛池模板: 午夜亚洲WWW湿好爽| 18禁在线无遮挡免费观看网站| 四虎影视永久免费视频观看| 国产精品无码免费专区午夜| 久久精品国产亚洲AV无码娇色| 无码高潮少妇毛多水多水免费| g0g0人体全免费高清大胆视频| 亚洲精品亚洲人成在线观看麻豆 | 亚洲男人天堂av| 国内免费高清在线观看| www一区二区www免费| 亚洲国产成人无码av在线播放| 国产一区二区三区免费看| 人人揉揉香蕉大免费不卡| 亚洲欧美日韩自偷自拍| 国产亚洲综合色就色| 日韩视频在线免费观看| 四虎影视在线影院在线观看免费视频 | 99国产精品永久免费视频| 免费一级毛suv好看的国产网站| 久久久久亚洲精品天堂| 亚洲国产成人久久精品99| 久久精品免费全国观看国产| www一区二区www免费| 亚洲欧美日韩自偷自拍| 亚洲电影中文字幕| 亚洲综合精品网站| 免费高清在线爱做视频| 最近免费中文字幕mv电影| av午夜福利一片免费看久久| 亚洲精品无码久久久久YW| 麻豆亚洲AV永久无码精品久久| 亚洲А∨精品天堂在线| 好吊妞788免费视频播放| 91在线老王精品免费播放| 男女一进一出抽搐免费视频| 亚洲欧洲av综合色无码| 亚洲在成人网在线看| 亚洲大片在线观看| 国产成A人亚洲精V品无码| 亚洲人成电影网站国产精品|