stringtranslate.com

TRE (informática)

TRE es una biblioteca de código abierto para la coincidencia de patrones en texto, [2] que funciona como un motor de expresiones regulares con la capacidad de realizar una coincidencia aproximada de cadenas . [3] Fue desarrollado por Ville Laurikari [1] y se distribuye bajo una licencia similar a BSD de 2 cláusulas .

La biblioteca [4] está escrita en C y proporciona funciones que permiten utilizar expresiones regulares para realizar búsquedas en las líneas de texto de entrada. La principal diferencia con otros motores de expresiones regulares es que TRE puede hacer coincidir fragmentos de texto de manera aproximada, es decir, suponiendo que el texto podría tener cierta cantidad de errores tipográficos .

Características

TRE utiliza una sintaxis de expresión regular extendida con la adición de "instrucciones" para hacer coincidir el fragmento anterior de manera aproximada. Cada una de estas instrucciones especifica cuántos errores tipográficos se permiten para este fragmento.

La correspondencia aproximada [5] se realiza de manera similar a la distancia de Levenshtein , lo que significa que hay tres tipos de errores tipográficos "reconocidos": [6]

TRE permite especificar el costo de cada uno de los tres tipos de errores tipográficos de forma independiente.

El proyecto viene con una utilidad de línea de comandos, una reimplementación de agrep .

Aunque la coincidencia aproximada requiere cierta extensión de sintaxis, cuando no se utiliza esta función, TRE funciona como la mayoría de los demás motores de coincidencia de expresiones regulares. Esto significa que

Tiempo predecible y consumo de memoria

El autor de la biblioteca afirma [8] que el tiempo empleado en la coincidencia crece linealmente con el aumento de la longitud del texto de entrada, mientras que el requisito de memoria es constante durante la coincidencia y no depende de la entrada, solo del patrón.

Otro

Otras características comunes a la mayoría de los motores de expresiones regulares se pueden consultar en las tablas de comparación de motores de expresiones regulares o en la lista de características de TRE en su página web.

Ejemplo de uso

Las direcciones de coincidencia aproximadas se especifican entre llaves y deben distinguirse de los cuantificadores repetitivos (posiblemente insertando un espacio después del corchete de apertura):

Enlaces de idioma

Además de C, TRE se puede utilizar a través de enlaces para Perl , Python y Haskell . [9] Es el motor de expresiones regulares predeterminado en R. [10] Sin embargo, si el proyecto fuera multiplataforma , sería necesaria una interfaz separada para cada una de las plataformas de destino.

Desventajas

Dado que otros motores de expresiones regulares no suelen ofrecer una capacidad de coincidencia aproximada, prácticamente no existe una implementación concurrente con la que se pueda comparar TRE. Sin embargo, hay algunas cosas que los programadores podrían desear ver implementadas en futuras versiones: [11]

Véase también

Referencias

  1. ^ ab "R: Coincidencia de patrones para vectores sin procesar". MIT .edu .
  2. ^ "Tre para Windows".
  3. ^ abc "Uso de búsquedas difusas con tre-agrep". Linux Magazine .
  4. ^ ab "tre 0.8.0-6 (x86_64)". 7 de julio de 2020.
  5. ^ Andoni, Alexandr; Krauthgamer, Robert; Onak, Krzysztof (2010). Aproximación polilogarítmica para la distancia de edición y la complejidad asimétrica de la consulta . IEEE Symp. Foundations of Computer Science (FOCS). arXiv : 1005.4033 . Bibcode :2010arXiv1005.4033A. CiteSeerX 10.1.1.208.2079 . 
  6. ^ "Página web de TRE - Sintaxis Regex".
  7. ^ "Tre-agrep tiene toda la funcionalidad de grep pero también puede ser ambiguo o difuso"
  8. ^ "Página web de TRE - Acerca de".
  9. ^ "Página web de TRE - Preguntas frecuentes".
  10. ^ "Expresiones regulares tal como se utilizan en R".
  11. ^ Trofimovich, Ulya (2019). "Autómatas finitos deterministas etiquetados con lookahead". arXiv : 1907.08837 [cs.FL]. mejoras prácticas .. Algoritmo de Lurikari, en particular ..

Enlaces externos

Lectura adicional