使用正则表达式,以实现下面的功能:
1)不可以为空
2)允许含有特殊字符:! $ % & \ () - / ; < ? [] ^ {}
3)必须同时含有半角英文大写字母、半角英文小写字母以及半角数字
4)8文字以上,16文字以下
1)不可以为空
2)允许含有特殊字符:! $ % & \ () - / ; < ? [] ^ {}
3)必须同时含有半角英文大写字母、半角英文小写字母以及半角数字
4)8文字以上,16文字以下
楼主【tteesstt】截止到2008-07-15 22:23:53的历史汇总数据(不包括此帖):
发帖的总数量:109 发帖的总分数:7000 每贴平均分数:64
回帖的总数量:76 得分贴总数量:8 回帖的得分率:10%
结贴的总数量:108 结贴的总分数:6900
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:100
结贴的百分比:99.08 % 结分的百分比:98.57 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
值得尊敬
System.out.println(regexText(""));
System.out.println(regexText("123"));
System.out.println(regexText("A4783"));
System.out.println(regexText("zA25$4783"));
System.out.println(regexText("z457E{"));
System.out.println(regexText("524754x1&#"));
System.out.println(regexText("10248Zgk@"));
System.out.println(regexText("102xfas44dsfdhd48Zgk@"));
}
public static boolean regexText(String value) {
return value.matches("^(?=.*\\p{Punct})(?=.*\\p{Alnum}).{8,16}$");
}
public static void main(String[] args) {
System.out.println(regexText("13a4C5fdsfiaf"));
System.out.println(regexText("123"));
System.out.println(regexText("A47c83"));
System.out.println(regexText("ZA25$4783"));
System.out.println(regexText("z457E{"));
System.out.println(regexText("524754x1&#"));
System.out.println(regexText("10248Zgk@"));
System.out.println(regexText("102xfas44dsfdhd48Zgk@"));
} public static boolean regexText(String value) {
String all = "[\\p{Graph}]{0,}";
StringBuilder b = new StringBuilder();
b.append("(" + all + "[0-9]+" + all + "[a-z]+" + all + "[A-Z]+" + all + ")");
b.append("|");
b.append("(" + all + "[0-9]+" + all + "[A-Z]+" + all + "[a-z]+" + all + ")");
b.append("|");
b.append("(" + all + "[a-z]+" + all + "[0-9]+" + all + "[A-Z]+" + all + ")");
b.append("|");
b.append("(" + all + "[a-z]+" + all + "[A-Z]+" + all + "[0-9]+" + all + ")");
b.append("|");
b.append("(" + all + "[A-Z]+" + all + "[a-z]+" + all + "[0-9]+" + all + ")");
b.append("|");
b.append("(" + all + "[A-Z]+" + all + "[0-9]+" + all + "[a-z]+" + all + ")");
return value.matches(b.toString()) && value.matches("[\\p{Graph}]{8,16}");
}
}运行结果为
true
false
false
false
false
false
true
false
不好意思,忽略了"同时"了. 下面这样行不行? public static void main(String[] args) {
System.out.println(regexText(""));
System.out.println(regexText("123"));
System.out.println(regexText("A4783"));
System.out.println(regexText("zA25$4783"));
System.out.println(regexText("z457E{"));
System.out.println(regexText("524754x1&#"));
System.out.println(regexText("10248Zgk@"));
System.out.println(regexText("102xfas44dsfdhd48Zgk@"));
System.out.println(regexText("xfAs.!.dsf5dhdoo"));
}
public static boolean regexText(String value) {
return value.matches("^(?=.*\\p{Punct})(?=.*\\p{Lower})(?=.*\\p{Upper})(?=.*\\p{Digit}).{8,16}$");
}
public static void main(String[] args) {
System.out.println(regexText("13a4C5fdsfiaf"));
System.out.println(regexText("123"));
System.out.println(regexText("A47c83"));
System.out.println(regexText("ZA25$4783"));
System.out.println(regexText("z457E{"));
System.out.println(regexText("524754x1&#"));
System.out.println(regexText("10248Zgk@"));
System.out.println(regexText("102xfas44dsfdhd48Zgk@"));
} public static boolean regexText(String value) {
String all = "[\\p{Graph}]{0,}";
StringBuilder b = new StringBuilder();
b.append("(" + all + "[0-9]+" + all + "[a-z]+" + all + "[A-Z]+" + all + ")");
b.append("|");
b.append("(" + all + "[0-9]+" + all + "[A-Z]+" + all + "[a-z]+" + all + ")");
b.append("|");
b.append("(" + all + "[a-z]+" + all + "[0-9]+" + all + "[A-Z]+" + all + ")");
b.append("|");
b.append("(" + all + "[a-z]+" + all + "[A-Z]+" + all + "[0-9]+" + all + ")");
b.append("|");
b.append("(" + all + "[A-Z]+" + all + "[a-z]+" + all + "[0-9]+" + all + ")");
b.append("|");
b.append("(" + all + "[A-Z]+" + all + "[0-9]+" + all + "[a-z]+" + all + ")");
return value.matches(b.toString()) && value.matches("[\\p{Graph}]{8,16}");
}
}:! $ % & \ () - / ; < ? [] ^ {}
System.out.println(regexText(""));
System.out.println(regexText("123"));
System.out.println(regexText("A4783"));
System.out.println(regexText("zA25$4783"));
System.out.println(regexText("z4uu3j57E{"));
System.out.println(regexText("524754x1&#"));
System.out.println(regexText("10248Zgk@"));
System.out.println(regexText("102xfas44dsfdhd48Zgk@"));
System.out.println(regexText("xfAs!dsf5dh&doo"));
System.out.println(regexText("xfAsmdsf5dhdoo")); }
public static boolean regexText(String value) {
return value.matches("^(?=.*\\p{Lower})(?=.*\\p{Upper})(?=.*\\p{Digit})(.((?<!\\p{Punct})|(?<=[-!$%&()/;<?{}\\[\\]\\\\^]))){8,16}$");
}
false
false
true
true
false
false
false
true
true
String[] strs = {
"",
"123",
"A4783",
"zA25$4783",
"z4uu3j57E{",
"524754x1&#",
"10248Zgk@",
"102xfas44dsfdhd48Zgk@",
"xfAs!dsf5dh&doo",
"xfAsmdsf5dhdoo"
}; // 限定条件
final String CONDITION = "(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)"; // 允许出现的字符
final String SPECIAL_CHAR = "[-A-Za-z0-9!$%&()/;<?{}\\[\\]^\\\\]"; // 数量
final String QUANTITY = "{8,16}"; Pattern pattern = Pattern.compile(CONDITION + SPECIAL_CHAR + QUANTITY); for(String str : strs) {
System.out.println(pattern.matcher(str).matches());
}
}
}