Ho cercato espressioni regolari che accettano almeno due cifre e un carattere speciale e la lunghezza minima della password è 8. Finora ho fatto il seguente: [[email protected]#$%0-9]*[[email protected]#$%0-9]+[[email protected]#$%0-9]*
Espressione regolare per password (almeno 2 cifre e un carattere speciale e lunghezza minima 8)
risposta
Prova questa espressione regolare. Usa lookahead per verificare che ci siano almeno due cifre e uno dei caratteri speciali elencati da te.
^(?=.*?[0-9].*?[0-9])(?=.*[[email protected]#$%])[[email protected]#$%0-9]{8,}$
SPIEGAZIONE
^ #Match start of line.
(?=.*?[0-9].*?[0-9]) #Look ahead and see if you can find at least two digits. Expression will fail if not.
(?=.*[[email protected]#$%]) #Look ahead and see if you can find at least one of the character in bracket []. Expression will fail if not.
[[email protected]#$%0-9]{8,} #Match at least 8 of the characters inside bracket [] to be successful.
$ # Match end of line.
Sembra 0-9 è dichiarato due volte nella tua lista di caratteri : [0-9a-zA-Z! @ # $% 0-9] – blatt
Prova questo: ^.*(?=.{8,15})(?=.*\d)(?=.*\d)[[email protected]#$%]+$
Si prega di leggere qui sotto collegamento per rendere la password politiche espressione regolare: -
Qualcosa come questo dovrebbe fare il trucco.
^(?=(.*\d){2})(?=.*[a-zA-Z])(?=.*[[email protected]#$%])[[email protected]#$%]{8,}
(?=(.*\d){2}) - uses lookahead (?=) and says the password must contain at least 2 digits
(?=.*[a-zA-Z]) - uses lookahead and says the password must contain an alpha
(?=.*[[email protected]#$%]) - uses lookahead and says the password must contain 1 or more special characters which are defined
[[email protected]#$%] - dictates the allowed characters
{8,} - says the password must be at least 8 characters long
Potrebbe essere necessario un piccolo ritocco, ad es. specificando esattamente quali caratteri speciali hai bisogno ma dovrebbe fare il trucco.
Questo è stato molto utile e dettagliato e per gli altri che vengono qui lascerò [questa guida] (http://www.cheatography.com/ davechild/cheat-sheets/regular-expressions /) che mi aiutano a personalizzare la tua risposta un po 'di più. – CupOfJoe
Provate questo:
^(?=.*\d{2,})(?=.*[$-/:-?{-~!"^_`\[\]]{1,})(?=.*\w).{8,}$
Ecco come funziona poco:
(?=.*\d{2,})
questa parte dicendo ad eccezione di almeno 2 cifre(?=.*[$-/:-?{-~!"^_
[]] {1,}) `questi sono caratteri speciali, almeno 1(?=.*\w)
e il resto sono lettere qualsiasi (uguale a[A-Za-z0-9_]
).{8,}$
questo dice almeno 8 caratteri incluse tutte le regole precedenti. Di seguito la mappa per regexp corrente (fatta con l'aiuto di Regexper) UPD
Regexp dovrebbe assomigliare a questa ^(?=(.*\d){2,})(?=.*[$-\/:-?{-~!"^_'\[\]]{1,})(?=.*\w).{8,}$
Partenza commenti per ulteriori dettagli.
Questo corrisponderà a 2 cifre solo se sono consecutivi, cosa che non penso sia il caso con la password. – justhalf
@justhalf, sì, hai ragione. La parte con le cifre dovrebbe apparire come questa '(? = (. * \ D) {2,})'. E regexp come questo '^ (? = (. * \ D) {2,}) (? =. * [$ - \ /: -? {- ~!"^_ '\ [\]] {1,}) (? =. * \ w). {8,} $ '. Grazie per una nota. – Valerii
Le espressioni regolari definiscono una struttura sulla stringa che si sta tentando di trovare. A meno che non si definisca una struttura spaziale sulla propria espressione regolare (ad esempio almeno due cifre seguite da un carattere speciale, seguito da ...) non è possibile utilizzare uno regex
per convalidare la stringa.
Non vi è alcuna ragione per implementare tutte le regole in una singola regex. considerazione di farlo come in tal modo:
Pattern[] pwdrules = new Pattern[] {
Pattern.compile("........"), // at least 8 chars
Pattern.compile("\d.*\d"), // 2 digits
Pattern.compile("[-!"§$%&/()=?+*~#'_:.,;]") // 1 special char
}
String password = ......;
boolean passed = true;
for (Pattern p : pwdrules) {
Matcher m = p.matcher(password);
if (m.find()) continue;
System.err.println("Rule " + p + " violated.");
passed = false;
}
if (passed) { .. ok case.. }
else { .. not ok case ... }
Questo ha il vantaggio che le regole Passwort possono essere aggiunti, rimossi o modificati senza sforzo. Possono persino risiedere in qualche file ressource.
Inoltre, è appena più leggibile.
" Non vi è alcun motivo per implementare tutte le regole in una singola regex. " Come lo sai? – drowa
@drowa Quale sarebbe un motivo? – Ingo
Immagina un sistema CMS che accetta solo espressioni regolari per la convalida del campo password e la modifica di questo sistema CMS non è un'opzione. – drowa
- 1. Lunghezza minima espressione regolare
- 2. Espressione regolare di lunghezza minima
- 3. Espressione regolare PHP per validazione password sicura
- 4. Espressione regolare per la convalida della password
- 5. Forte password di espressione regolare che corrisponde a qualsiasi carattere speciale
- 6. Espressione regolare a 6 cifre
- 7. Regex per abbinare almeno 2 cifre, 2 lettere in qualsiasi ordine in una stringa
- 8. Espressione regolare PHP per abbinare linee che iniziano con un carattere speciale
- 9. Espressione regolare per verificare se una determinata password contiene almeno un numero e una lettera in C#?
- 10. Espressione regolare - 2 lettere e 2 numeri in C#
- 11. Espressione regolare nel campo Android per password
- 12. SteamID64 lunghezza minima e massima
- 13. Regex per 8-10 cifre
- 14. Espressione regolare per accettare solo numeri positivi e decimali
- 15. python, regex split e carattere speciale
- 16. Espressione regolare PHP per rimuovere tutti i caratteri diversi da cifre e punti
- 17. Espressione regolare: intervallo di due cifre (23-79)?
- 18. Espressione regolare con i caratteri jolly per abbinare qualsiasi carattere
- 19. Espressione regolare per il numero di 10 cifre senza caratteri speciali
- 20. Come verificare che una stringa contenga almeno 5 caratteri univoci e abbia una lunghezza minima di 7 caratteri?
- 21. URL e decodifica carattere speciale in Java
- 22. espressione regolare per la convalida prezzo
- 23. espressione regolare per numero e spazi
- 24. espressione regolare e barra diretta
- 25. Espressione regolare: consente lettere, numeri e spazi (con almeno una lettera o un numero)
- 26. RegEx per assicurarsi che la stringa contenga almeno un carattere minuscolo, carattere maiuscolo, cifra e simbolo
- 27. Imposizione di una lunghezza minima nella password Django
- 28. Espressione regolare di indirizzo e-mail valido?
- 29. RegEx Per Strong password
- 30. proxy_pass dinamico con mappa e espressione regolare
possibile duplicato del [espressioni regolari per la convalida della password] (http://stackoverflow.com/questions/7245267/regular-expressions-for-password-validation) – Toto