<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);
        }

    }


     

     

    主站蜘蛛池模板: 日韩亚洲人成网站| 亚洲乱人伦精品图片| 深夜免费在线视频| 日韩免费视频观看| 亚洲精品无码久久久久YW| 免费无码看av的网站| 亚洲国产成人久久综合| 青青草国产免费久久久下载| 亚洲色精品三区二区一区| 午夜视频免费成人| 成人婷婷网色偷偷亚洲男人的天堂 | 亚洲免费在线视频播放| 一二三四视频在线观看中文版免费| 亚洲成综合人影院在院播放| 91免费播放人人爽人人快乐| 亚洲综合精品第一页| 男女啪啪永久免费观看网站| 黄色网址免费在线| 亚洲熟妇av一区二区三区| 四虎国产精品永久免费网址| 亚洲最大中文字幕| 狼友av永久网站免费观看 | 免费看黄的成人APP| 亚洲视频在线观看网站| 免费精品人在线二线三线区别| 亚洲国产精品无码观看久久| 成人亚洲网站www在线观看| 国产美女视频免费观看的网站| 久久亚洲国产伦理| 最近免费中文字幕大全视频 | 亚洲AV成人一区二区三区观看| 免费a级毛片18以上观看精品| 巨胸喷奶水视频www免费视频| 亚洲熟妇无码久久精品| 国产成人精品免费视频软件| 最好免费观看高清在线| 91亚洲国产成人久久精品| 亚洲国产91精品无码专区| 久久午夜无码免费| 亚洲变态另类一区二区三区| 精品国产_亚洲人成在线高清|