Después de una búsqueda larga e infructuosa, estoy empezando a preguntarme si lo que estoy buscando es posible, me gustaría una expresión regular que requiera que cada letra elegida sea obligatoria pero solo una vez y en cualquier orden.
Ejemplo: ^[abc]{3}$
El resultado que espero sería que solo coincida con eso:
abc, bac, cba, acbMientras obtengo:
acc, abb, cca, aab¿Ves a dónde voy con esto?
Puede usar una expresión regular como esta con una anticipación negativa del carácter coincidente en una referencia inversa:
^(?:([abc])(?!.*\1)){3}$Aquí hay otra manera.
^(?!.*([abc]).*\1)[abc]{3}$La anticipación negativa
(?!.*([abc]).*\1)afirma que no se repite ningún carácter y
[abc]{3}junto con los dos anclajes afirma que la cadena tiene una longitud de tres y está compuesta por los caracteres de la clase de caracteres.