2008-11-20 37 views
8

Me gustaría utilizar un analizador Regex para ayudar en el procesamiento de cadenas en una aplicación C. Idealmente estoy buscando algo ligero y de código abierto. La plataforma objetivo es un sistema integrado por lo que estamos buscando ahorrar tanto como sea posible con el consumo de memoria en particular. He encontrado una serie de opciones en línea, pero me preguntaba si alguien puede hacer sugerencias adicionales que pueden ayudar en este contexto particular.Analizador de expresiones regulares ligero

Muchas gracias,

Respuesta

7

Scintilla, un componente editor de texto de código abierto, utiliza Ozan S. Yigit's RE engine

Fue elegido porque es de dominio público (por lo que no gravar la licencia) y muy ligero. Pero es un poco limitado ... Por lo que vale, RESearch.cxx usa un código un poco más moderno (convertido a C++ pero no debería ser complicado convertirlo a C) con algunas extensiones menores hechas por mí (soporte de \ d \ s \ w etc.).

Hay algunas alternativas, como Henry Spencer's regular expression libraries.

Ahora que lo pienso, el motor regex Lua (en la biblioteca de cadenas, la implementación de gsub entre otros) es probablemente rápido y pequeño, como el idioma en sí. Tiene sus peculiaridades y limitaciones, pero es muy útil.

El proyecto de lado LPeg puede ser una alternativa interesante a los RE, aún es ligero pero potente.

+0

Gracias por los detalles ... Creo que voy a ir con RESearch.cxx por ahora. Hace lo que necesito y parece hacerlo de manera eficiente. ¡Gracias! –

5

Si usted no requiere una implementación completa expresión regular las funciones (y parece que no lo hace), entonces el código escrito por Brian Kernighan y Rob Pike resaltado en Beautiful Code probablemente trabajar para su necesariamente. I found a Dr. Dobb's article que creo que es el origen del código que aparece en el libro.