¿Es posible construir una expresión regular de estilo PCRE que solo concuerde con cada letra en una lista solo una vez?Regex para usar cada letra solo una vez?
Por ejemplo, si usted tiene las letras "LRSA" y se intenta que coincide con una lista de palabras en contra:
^[lrsa]*m[lrsa]*$
que va a coincidir "LAMS" (válido), sino también "lamas" (inválido para nuestros propósitos porque solo tenía una "a"). Si tu conjunto de letras era "lrsaa", querrías unir "lamas".
¿Esto es posible con expresiones regulares, o debería manejarlo programáticamente?
Esto no va a funcionar como '[lrsaa]' 'es igual a [LRSA] '. – Gumbo
Correcto, y ese es mi problema. Puede limitar con [lrsa] {4} pero eso aún coincidirá con "muchacha", por ejemplo. – gtcaz
Lo que puede hacer es coincidir con los que quiere y algunos extras que no. Con una iteración de tus partidos, sería trivial filtrar los extras no deseados. – erisco