RE2 es una biblioteca de software para expresiones regulares a través de una máquina de estados finitos que usa la teoría de autómatas , en contraste con casi todas las demás bibliotecas de expresiones regulares , que usan implementaciones de retroceso . Proporciona una interfaz C ++ .
Autor (es) original (es) | |
---|---|
Versión inicial | 11 de marzo de 2010 [1] |
Lanzamiento estable | 2021-04-01 / 1 de abril de 2021 [2] |
Repositorio | |
Escrito en | C ++ |
Sistema operativo | Multiplataforma |
Tipo | Biblioteca de coincidencia de patrones |
Licencia | BSD |
Sitio web | github |
RE2 fue implementado y es utilizado por Google .
Comparación con PCRE
"RE2" generalmente se compara con las expresiones regulares compatibles con Perl (PCRE) en rendimiento. Para ciertos operadores de expresión regular como |
( disyunción lógica o booleano "o") excede PCRE. Por otro lado, RE2 no admite referencias anteriores y no puede implementarlas de manera eficiente. También es un poco más lento que PCRE para operaciones de captura entre paréntesis.
PCRE puede usar una gran pila recursiva con un alto uso de memoria correspondiente y tener un tiempo de ejecución exponencial en ciertos patrones. Por el contrario, RE2 usa una pila fija y garantiza que el tiempo de ejecución aumenta linealmente (no exponencialmente) con el tamaño de la entrada. La memoria máxima asignada con RE2 es configurable.
RE2 tiene un conjunto de características ligeramente más pequeño que PCRE, pero tiene un tiempo de ejecución muy predecible y una asignación de memoria máxima. Esto lo hace adecuado para su uso en aplicaciones de servidor que requieren límites en el uso de la memoria y el tiempo de cálculo. PCRE, por otro lado, tiene casi todas las características que puede tener una biblioteca de expresiones regulares, pero tiene un tiempo de ejecución y un uso de memoria impredecibles y puede crecer sin límites.
Usar en productos de Google
RE2, por ejemplo, es utilizado por productos de Google como Gmail , Documentos de Google y Hojas de cálculo de Google . [3] Consulte github para obtener una documentación de la sintaxis: sintaxis RE2 .
En Google Sheets se utiliza en las funciones RegexMatch () , RegexReplace () , RegexExtract () y la función de buscar y reemplazar . RegexExtract (), no usa agrupamiento .
Ver también
Referencias
- ^ Cox, Russ (11 de marzo de 2010). "RE2: un enfoque de principios para la coincidencia de expresiones regulares" . Blog de código abierto de Google . Consultado el 29 de mayo de 2020 .
- ^ "Lanzamientos" . Github . Consultado el 3 de mayo de 2021 .
- ^ "Buscar y usar buscar y reemplazar" . Consultado el 24 de marzo de 2020 .