Iba a escribir una expresión regular que coincidiría solo si una cadena contiene al menos n clases diferentes de caracteres. Yo iba a usar esto para forzar a mis usuarios para crear contraseñas seguras y quería comprobar si la contraseña contiene al menos 3 de los siguientes:Igualación de expresiones regulares al menos n de m grupos
- Caracteres
- capitales Caracteres
- Números
- Caracteres especiales
Escribir una expresión regular que coincida si todas esas clases están presentes es trivial usando lookaheads. Sin embargo, no puedo envolver mi cabeza con la parte "al menos 3". ¿Es esto posible (en una expresión agradable y compacta) o tendré que crear una expresión de monstruo?
Me gusta mucho este enfoque. Ni siquiera pensé en invertir la lógica. Muchas gracias, muy inteligente! –
¿No es esta expresión que permite espacios? – Rookian
Lo hace, [no es raro que las contraseñas permitan espacios] (http://stackoverflow.com/questions/632167/should-users-be-allowed-to- ingresred-a-password-with-a-space- at-the-beginning-or-e). Si necesita una versión que no permite espacios, cambie el '. *' Al final a '\ S *'. –