| 1. 只有字母、數字和底線且不能以底線開頭和結尾的Regex:^(?!_)(?!.*?_$)[a-zA-Z0-9_]+$ 只有字母和數位: ^[a-zA-Z0-9_]+$ 2. 至少一個漢字、數字、字母、底線: "[a-zA-Z0-9_\u4e00-\u9fa5]+" 3. 至少一個漢字的Regex:"^[\u4e00-\u9fa5]" 4. 最多10個漢字: ValidationExpression="^[\u4e00-\u9fa5]{0,10}" 5. 只含有漢字、數字、字母、底線不能以底線開頭和結尾:^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$ 解釋: ^ 與字串開始的地方匹配 (?!_) 不能以_開頭 (?!.*?_$) 不能以_結尾 [a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一個漢字、數字、字母、底線 $ 與字串結束的地方匹配 6. emailRegex:兩種方式都可以 (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}$) 完美E-MailRegex: 國際網域名稱格式如下: 網域名稱由各國文字的特定字元集、英文字母、數字及“-”(即連字號或減號)任意組合而成, 但開頭及結尾均不能含有“-”,“-”不能連續出現 。 網域名稱中字母不分大小寫。網域名稱最長可達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 構成一個不區分大小寫Regex; ^ 匹配開始 $ 匹配結束 [a-z] E-Mail首碼必需是一個英文字母開頭 ([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是Null 字元,也是匹配的,*表示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}為{起始字數,結束字數} 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 完美E-MailRegex:國際網域名稱格式如下: 網域名稱由各國文字的特定字元集、英文字母、數字及“-”(即連字號或減號)任意組合而成, 但開頭及結尾均不能含有“-”,“-”不能連續出現 。 網域名稱中字母不分大小寫。網域名稱最長可達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 構成一個不區分大小寫Regex; ^ 匹配開始 $ 匹配結束 [a-z] E-Mail首碼必需是一個英文字母開頭 ([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是Null 字元,也是匹配的,*表示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}為{起始字數,結束字數} 下面也是轉載的: Java代碼 1、一個Regex,只含有漢字、數字、字母、底線不能以底線開頭和結尾: ^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$ 其中: ^ 與字串開始的地方匹配 (?!_) 不能以_開頭 (?!.*?_$) 不能以_結尾 [a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一個漢字、數字、字母、底線 $ 與字串結束的地方匹配 放在程式裡前面加@,否則需要\\進行轉義 @"^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$" (或者:@"^(?!_)\w*(?<!_)$" 或者 @" ^[\u4E00-\u9FA50-9a-zA-Z_]+$ " ) 2、只含有漢字、數字、字母、底線,底線位置不限: ^[a-zA-Z0-9_\u4e00-\u9fa5]+$ 3、由數字、26個英文字母或者底線組成的字串 ^\w+$ 4、2~4個漢字 @"^[\u4E00-\u9FA5]{2,4}$"; 5、 ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 用:(Abc)+ 來分析: XYZAbcAbcAbcXYZAbcAb XYZAbcAbcAbcXYZAbcAb6、 [^\u4E00-\u9FA50-9a-zA-Z_] 34555#5' -->34555#5' [\u4E00-\u9FA50-9a-zA-Z_] eiieng_89_ ---> eiieng_89_ _';'eiieng_88&*9_ --> _';'eiieng_88&*9_ _';'eiieng_88_&*9_ --> _';'eiieng_88_&*9_ 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 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{ //不匹配 } } |