So validieren Sie Passwörter mit kanonischen Ausdrücken! Ich habe einen ganzen Tag gebraucht, um das zu verstehen Als Referenz für ähnliche Personen. .. ..
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!-/:-@[-`{-~])[!-~]{8,48}$
Java-Beispielcode
RegexPassword.java
package sample;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexPassword {
public static void main(String[] args) {
Pattern p = Pattern.compile("^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!-/:-@\\[-`{-~])[!-~]*");
Matcher m = p.matcher("aA1!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~");
Boolean result = m.matches();
System.out.println("result:" + result);
}
}
Wenn Sie die Grundvoraussetzung regulärer Ausdrücke kennen Wenn Sie die Grundvoraussetzung für reguläre Ausdrücke 2 kennen
Einfach vorauszulesen und zurückzublicken
Leicht zu lesende ASCII-Zeichencodetabelle
Für diejenigen, die die Notwendigkeit von ". *" Von "(? =. * [A-z])" nicht verstehen.
Um reguläre Ausdrücke in Java zu verwenden
Sprache: Java8
Über kanonische Ausdrücke für Passwörter Zuerst den positiven Ausblick verstehen Ich habe den folgenden Code geschrieben und ausgeführt, um die Operation zu überprüfen Ich war besorgt über falsch, wenn es wahr zurückgeben sollte.
package sample;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexWord {
public static void main(String[] args) {
Pattern p = Pattern.compile("^(?=.*[a-z])");
Matcher m = p.matcher("abc");
Boolean result = m.matches();
System.out.println("result:" + result);
}
}
Abschließend musste ich die Zeile "Pattern p = ~" wie folgt umschreiben:
Pattern p = Pattern.compile("^(?=.*[a-z]).*");
Recommended Posts