0
点赞
收藏
分享

微信扫一扫

java正则匹配6-20位字母、数字、特殊符号最少满足其中两种

勇敢乌龟 2023-02-04 阅读 79


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

/**
* 6-20位 字母、数字、符号最少任意两种组合
* 字母、数字
* 字母、符号
* 数字、符号
* 字母、数字、符号
*/
public class PasswordUtils {

public static void main(String[] args) {

String specialCharacter="[_`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?-]";
String word="[a-zA-Z]";
String number="[0-9]";

StringBuilder regexBuilder=new StringBuilder();
regexBuilder.append("^");
regexBuilder.append("[");
regexBuilder.append("(").append(word).append("&").append(number).append(")");
regexBuilder.append("|");
regexBuilder.append("(").append(word).append("&").append(specialCharacter).append(")");
regexBuilder.append("|");
regexBuilder.append("(").append(number).append("&").append(specialCharacter).append(")");
regexBuilder.append("|");
regexBuilder.append("(").append(word).append("&").append(number).append("&").append(specialCharacter).append(")");
regexBuilder.append("]");
regexBuilder.append("{6,20}");
regexBuilder.append("$");

String input="z34-_";

String regex=regexBuilder.toString();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input); // 获取 matcher 对象

System.out.println(m.matches());
}

}

 

举报

相关推荐

0 条评论