Estoy currentry programando un algoritmo de vocabulario que comprueba si un usuario ha escrito correctamente la palabra. Tengo la siguiente situación: La solución correcta para la palabra sería "part1, part2". El usuario debería poder ingresar "parte1" (respuesta 1), "parte2" (respuesta 2) o "parte1, parte2" (respuesta 3). Ahora intento para que coincida con la cadena dada por el usuario con la siguiente, creado de forma automática, la expresión de expresiones regulares:y/u operador en la expresión regular
^(part1|part2)$
Esto sólo vuelve a responder 1 y 2 como respuesta correcta, mientras que 3 sería un error. Ahora me pregunto si hay un operador similar a | que dice "y/o" en lugar de "cualquiera ... o". ¿Alguien me puede ayudar aquí?
expresiones regulares puede no ser la mejor solución para esto. Utilizaría métodos de cuerda normales. –
Este problema está mal especificado. ¿Por qué está usando la coincidencia de patrones cuando todo lo que necesita es una comparación exacta de cadenas con un conjunto de cadenas legales? A menos que su compilador de expresiones regulares optimice las alternativas en una estructura O (1) trie de la misma manera que lo hace Perl's, en su lugar probablemente deba hacer una prueba contra membresía hash. Otros motores de expresiones regulares no son muy inteligentes en esto. – tchrist