¿Cuál es la expresión regular para asegurarse de que una cadena dada contiene al menos un carácter de cada una de las siguientes categorías?
- Minúscula
- Carácter en mayúscula
- Dígito
- Símbolo
Sé que las pautas de conjuntos individuales a saber [a-z], [A-Z], \dy _|[^\w](me dieron a corregir, ¿verdad?).
Pero, ¿cómo los combino para asegurarme de que la cadena contiene todos estos en cualquier orden?

Respuestas:
Si necesita una única expresión regular, intente:
Una breve explicación:
Y estoy de acuerdo con SilentGhost,
\Wpodría ser un poco amplio. Lo reemplazaría con un conjunto de caracteres como este:[-+_!@#$%^&*.,?](¡no dude en agregar más, por supuesto!)fuente
.+en.*? No pude encontrar un caso de prueba que falla.*. ¿Son iguales en este contexto? "Cero o más caracteres" parece estar bien, solo busca confirmación..+en.*o incluso.{4,}para el caso.^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*[&%$]).{6,}$Bart Kiers, tu expresión regular tiene un par de problemas. La mejor manera de hacerlo es esto:
De esta manera, está buscando sin importar si al principio, al final o en el medio. En tu tengo muchos problemas con contraseñas complejas.
fuente
Puede unir esos tres grupos por separado y asegurarse de que todos estén presentes. Además,
[^\w]parece un poco demasiado amplio, pero si eso es lo que quieres, puedes reemplazarlo\W.fuente
\Wy[\W]resulta en lo mismo.