Sto provando a creare un'espressione regolare per la corrispondenza del modello (per le password) in cui la stringa deve essere compresa tra 8 e 30 caratteri, deve avere almeno 2 cifre, almeno 2 lettere (maiuscole e minuscole), almeno un carattere speciale e nessuno spazio.Regex per abbinare almeno 2 cifre, 2 lettere in qualsiasi ordine in una stringa
Ho gli spazi e l'abbinamento di caratteri speciali funzionanti, ma vengono lanciati sulle 2 cifre e 2 lettere perché non è necessario che siano consecutive.
, ad esempio deve corrispondere a a1b2c$
o ab12$
o 1aab2c$
.
Qualcosa come questo per le lettere?
(?=.*[a-zA-Z].*[a-zA-Z]) // Not sure.
Questa stringa seguente funziona, ma solo se le 2 lettere sono consecutivi e le 2 numeri sono consecutive..it fallisce se le lettere, numeri, caratteri speciali sono intrecciati.
(?=^.{8,30}$)((?=.*\\d)(?=.*[A-Za-z]{2})(?=.*[0-9]{2})(?=.*[[email protected]#$%^&*?]{1})(?!.*[\\s]))^.*
Sei assolutamente sicuro che hai bisogno regexp per questo? – Scorpil
Discuterei contro espressioni regolari e ho solo controlli individuali per ognuna con istruzioni if e una sorta di funzione string.contains(). gparyani ha dato una soluzione che sembra essere molto più adatta rispetto alla regex – user1751547
Sembra che ho bisogno di regex poiché questo fa parte di una configurazione Liferay. – user2166893