import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^ # 匹配行首\n"
+ "(?=.*[A-Z]) # 向前环视,匹配到大写字母\n"
+ "(?=.*[a-z]) # 向前环视,匹配到小写字母\n"
+ "(?=.*\\d) # 向前环视,匹配到数字\n"
+ "(?=.*[_\\W]) # 向前环视,匹配到特殊字符\n"
+ ".{10,} # 若满足以上环视条件,且有10个以上字符,则进行匹配\n"
+ "$ # 匹配行尾";
final String string = "// Good Case\n"
+ "asdfsadfANVasdfasdfasdf..sadfs1\n"
+ "www.baidu.com.COM123\n"
+ "qwerTYUIOP1233333333333333\n"
+ "qwerTYUIOP1233333333333333-=+\n"
+ "asdfsafxxxSSS..123\n"
+ "abcABC123,./\n\n"
+ "// Bad Case\n"
+ "xxxyyyzzz\n"
+ "XYZxyz123\n"
+ "aaabbbccc\n"
+ "12342353125123asedf";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.COMMENTS);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html