天天看點

JAVA 正規表達式、漢字正則、 java正則代碼

(一)字母、數字、下劃線、漢字正規表達式

1. 隻有字母、數字和下劃線且不能以下劃線開頭和結尾的正規表達式:^(?!_)(?!.*?_$)[a-za-z0-9_]+$  

    隻有字母和數字的: ^[a-za-z0-9_]+$  

2. 至少一個漢字、數字、字母、下劃線: "[a-za-z0-9_\u4e00-\u9fa5]+"        

3. 至少一個漢字的正規表達式:"^[\u4e00-\u9fa5]" 

4. 最多10個漢字: validationexpression="^[\u4e00-\u9fa5]{0,10}" 

5. 隻含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$  

    解釋:  

    ^                          與字元串開始的地方比對  

         (?!_)                  不能以_開頭  

         (?!.*?_$)             不能以_結尾  

         [a-za-z0-9_\u4e00-\u9fa5]+    至少一個漢字、數字、字母、下劃線  

         $                 與字元串結束的地方比對  

6.一個正規表達式,隻含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:  

    ^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$  

    解釋:  

    ^                   與字元串開始的地方比對  

    (?!_)                不能以_開頭  

    (?!.*?_$)               不能以_結尾  

    [a-za-z0-9_\u4e00-\u9fa5]+    至少一個漢字、數字、字母、下劃線  

    $                 與字元串結束的地方比對  

    放在程式裡前面加@,否則需要\\進行轉義 @"^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$" 

    (或者:@"^(?!_)\w*(?<!_)$"     或者   @" ^[\u4e00-\u9fa50-9a-za-z_]+$ "   )  

7、隻含有漢字、數字、字母、下劃線,下劃線位置不限:  

     ^[a-za-z0-9_\u4e00-\u9fa5]+$  

8、由數字、26個英文字母或者下劃線組成的字元串  

   ^\w+$  

9、2~4個漢字  

   @"^[\u4e00-\u9fa5]{2,4}$";  

(二) 整數與浮點數

^[1-9]\d*$                    //比對正整數

^-[1-9]\d*$                    //比對負整數

^-?[1-9]\d*$                    //比對整數

^[1-9]\d*|0$                  //比對非負整數(正整數 + 0)

^-[1-9]\d*|0$                  //比對非正整數(負整數 + 0)

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$         //比對正浮點數

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$         //比對負浮點數

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //比對浮點數

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$    //比對非負浮點數(正浮點數 + 0)

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //比對非正浮點數(負浮點數 + 0)

e-mail正規表達式:  

email正規表達式:兩種方式都可以  

    (1) \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*  

    (2) ^[_a-za-z0-9-]+(\\.[_a-za-z0-9-]+)*@[a-za-z0-9-]+(\\.[a-za-z0-9-]+)*((\\.[a-za-z]{2,}){1}$)  

國際域名格式如下:       

域名由各國文字的特定字元集、英文字母、數字及“-”(即連字元或減号)任意組合而成,    但開頭及結尾均不能含有“-”,“-”不能連續出現    。    域名中字母不分大小寫。域名最長可達60個位元組(包括字尾.com、.net、.org等)。             

   /^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i;

  解釋:    

   /内容/i    構成一個不區分大小寫的正規表達式;     

   ^            比對開始     

   $          比對結束     

   [a-z]        e-mail字首必需是一個英文字母開頭     

   ([a-z0-9]*[-_]?[a-z0-9]+)*    和_a_2、aaa11、_1_a_2比對,和a1_、aaff_33a_、a__aa不比對,如果是空字元,也是比對的,*表示0個或者多個。     

   *        表示0個或多個前面的字元.     

   [a-z0-9]*         比對0個或多個英文字母或者數字     

   [-_]?         比對0個或1“-”,因為“-”不能連續出現     

   [a-z0-9]+      比對1個或多個英文字母或者數字,因為“-”不能做為結尾     

   @          必需有個有@     

   ([a-z0-9]*[-_]?[a-z0-9]+)+    見上面([a-z0-9]*[-_]?[a-z0-9]+)*解釋,但是不能為空,+表示一個或者為多個。     

   [\.]          将特殊字元(.)當成普通字元     

   [a-z]{2,3}      比對2個至3個英文字母,一般為com或者net等.     

   ([\.][a-z]{2})?    比對0個或者1個[\.][a-z]{2}(比如.cn等)    我不知道一般.com.cn最後部份是不是都是兩位的,如果不是請修改{2}為{起始字數,結束字數}   

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、  

public   bool regexname(string str)  

{  

     bool flag=regex.ismatch(str,@"^[a-za-z0-9_\u4e00-\u9fa5]+$");  

     return   flag;  

}  

regex    reg=new    regex("^[a-za-z_0-9]+$");     

if(reg.ismatch(s))     

{     

     \\符合規則     

}     

else     

     \\存在非法字元     

 }

、、、、、、、、、、、、、、、、、、、、、、、、

import java.util.regex.matcher;

import java.util.regex.pattern;

public list<map<string, string>> getuser(string deptid) {

  pattern pattern = pattern.compile("^[a-za-z0-9_]+$");

  matcher matcher = pattern.matcher(deptid);

  if (matcher.find()) {

    //如果比對

  }else{

    //不比對

  }

}