estoy trabajando en algunas tareas para mi clase compilador y tengo el siguiente problema:¿Es posible simplificar esta expresión regular más?
Escribir una expresión regular para todas las cadenas de un 's y b' s que contienen un número impar de un o un número impar de b 's (o ambos).
Después de mucho trabajo pizarra me ocurrió la siguiente solución:
(aa|bb)* (ab|ba|a|b) ((aa|bb)* (ab|ba) (aa|bb)* (ab|ba) (aa|bb)*)*
sin embargo, es que este es el más simplificada que puedo conseguirlo? Consideré construir el DFA tratando de minimizar el número de estados para ver si eso me ayudaría a simplificar, pero pensé que primero debería preguntarle a los gurús de regex en SO.
¿Qué características avanzadas de regex tiene permitido usar? –
está usando expresiones regulares en Computer Science, no PCRE o posix regex;) Son diferentes. –
@Brad Gilbert, supongo que solo podemos usar la expresión regular que se ha introducido hasta ahora en el libro, que no es mucho. (*, +,?, |, [], ^). Bastante simple –