Me preguntaba si la especificación JSON definía un lenguaje regular. Parece bastante simple, pero no estoy seguro de cómo demostrarlo yo mismo.
La razón por la que pregunto es porque me preguntaba si uno podría usar expresiones regulares para analizar JSON de manera efectiva.
¿Podría alguien con suficiente representante crear las etiquetas json y lenguaje normal para mí?
Respuestas:
Como no es un lenguaje regular, tampoco lo es JSON, ya que [ n 5 ] n es una entrada válida para cualquier n . Del mismo modo, su analizador de expresiones regulares tendría que rechazar adecuadamente cualquier entrada [ m 4 ] n donde m ≠ n que no puede hacer con expresiones regulares.unnortesinorte [norte5 ]norte norte [metro4 ]norte m ≠ n
Por lo tanto, JSON no es regular.
fuente
No, no es regular. Dado que permite la incorporación arbitraria de delimitadores equilibrados, debe estar al menos libre de contexto.
Por ejemplo, considere una matriz de matrices de matrices:
Claramente, no podrías analizar eso con verdaderas expresiones regulares.
fuente