¿Hay algún algoritmo o herramienta para convertir la gramática regular en expresión regular?¿Cómo convertir una gramática común a expresión regular?
6
A
Respuesta
1
1
El algoritmo es bastante sencillo si puede calcular un autómata a partir de su expresión regular. Una vez que tengas tu autómata. Por ejemplo, para (aa*b|c)
, un autómata sería (flechas van a la derecha):
a
/\
a \/b
-> 0 ---> 1 ---> 2 ->
\___________/
c
A continuación, sólo "enumerar" las transiciones como reglas. A continuación, considere que 0, 1 y 2 son símbolos no terminales y, por supuesto, a, byc son los tokens.
0: a1 | c2
1: a1 | b2
2: epsilon
o, si no desea los lados derechos vacíos.
0: a1 | c
1: a1 | b
Y, por supuesto, de la vía en la otra dirección proporciona un medio para convertir una gramática regular en un autómata, por lo tanto, una expresión racional.
Cuestiones relacionadas
- 1. Cómo convertir NFA a la expresión regular
- 2. Convierta la expresión regular a CFG
- 3. ¿Expresión regular para encontrar una expresión regular?
- 4. Expresión regular para convertir marca en HTML
- 5. Expresión regular para coincidir con la sintaxis SQL común?
- 6. ¿Cómo descompilar una expresión regular?
- 7. ¿Cómo validar una expresión regular?
- 8. ¿Hay una expresión regular para detectar una expresión regular válida?
- 9. ¿Cómo puedo volver a usar una expresión de tabla común
- 10. Comprueba si una expresión regular cubre otra expresión regular
- 11. expresión regular "contiene" otra expresión regular
- 12. Hacer una expresión regular de JavaScript equivalente a una expresión regular PHP
- 13. Convertir la gramática Antlr simple a Xtext
- 14. ¿Convertir la gramática a Chomsky Normal Form?
- 15. Una expresión regular rápida necesaria
- 16. ¿Cómo puedo convertir desde guiones bajos a camello con una expresión regular?
- 17. Cómo validar una expresión regular con PHP
- 18. ¿Qué código usaría para convertir una expresión SQL como una expresión regular sobre la marcha?
- 19. ¿Cómo puedo generar texto que coincida con una expresión regular de una expresión regular?
- 20. Simplifica una expresión regular compleja
- 21. ¿cómo puedo evitar exclamaciones a través de una expresión regular
- 22. Cómo agregar un modificador a una expresión regular citada (qr)
- 23. Email expresión regular
- 24. expresión regular lookahead negativo
- 25. Cómo reemplazar por expresión regular a minúsculas en python
- 26. ¿Cómo funciona esta expresión regular?
- 27. Expresión regular: rango numérico
- 28. ¿Forma fácil de convertir expresiones regex a una expresión regular compatible con Java?
- 29. Necesito una buena expresión regular para convertir URL a enlaces, pero dejo vínculos existentes solo
- 30. Expresión regular opuesta
Puede consultar http://www.regexmagic.com/ si crear fácilmente la expresión es su propósito. – Aphelion
Mi objetivo es convertir una gramática común en DFA. Finalmente, encontré una herramienta excelente: http://www.jflap.org/jflaptmp/. – dalibocai
JFLAP se ve muy bien. Gracias por el enlace. –