Saltar al contenido principal

RegEx

Las abreviaturas regex y regexp denotan expresiones regulares que se usan en la informática teórica, programación, desarrollo de software, procesamiento de textos y optimización de motores de búsqueda. Las expresiones regulares se pueden usar para describir cadenas y números de cadenas en una forma lógica general con el fin de buscarlas, sustituirlas, manipularlas o procesarlas en documentos, código fuente o una base de datos.

Ejemplo: En un editor de texto habilitado para regex, se supone que se muestran todos los enlaces contenidos en un archivo HTML. Si se introduce la expresión [^»]*»[^>]*> en la función de búsqueda del editor, se mostrarán todos los enlaces que tengan el formato usual para enlaces HTML. El término [.* realiza la misma tarea.]

Información general

El lógico y matemático Stephen Kleene es considerado el fundador de regex. En 1956 utilizó anotaciones de cantidades regulares en un ensayo sobre la representación de eventos en redes neuronales y autómatas finitos. Este y otros trabajos son hoy principios fundamentales fundamentales en la informática teórica. Las expresiones regulares se usan ahora en varios campos para simplificar las operaciones, que de otro modo requerirían mucho trabajo y mucho tiempo.

Regex puede ser utilizado en función de su implementación en varios lenguajes de programación, entornos y editores de texto, por ejemplo, en Perl, PHP,.NET o JavaScript como items de una librería[1]. O en EditPad, Emacs y Notepad ++ como una función de búsqueda y reemplazo en editores de texto. En el buscador de Google Analytics, las expresiones regulares además se usan para filtrar las fuentes de tráfico, definir segmentos y separar los datos detallados del reporte de otros datos.

Funcionalidad

Los usos de regex son extremadamente múltiples. Las posibles expresiones regulares dependen de la notación. Existen distintos notaciones en distintos lenguajes de programación. Estas anotaciones se denominan shell pattern name, BRE (Basic Regular Expressions, Expresiones Regulares Básicas) y ERE (Extended Regular Expressions, Expresiones regulares extendidas). Las diferencias se deben a veces al hecho de que se usan caracteres individuales y sobre todo metacaracteres (caracteres de control) en un lenguaje de programación.

Generalmente, se distinguen los caracteres (terminales) y los metacaracteres. Los caracteres se registran en el juego de caracteres (el alfabeto) que contiene, por ejemplo, números, letras y comas. Los metacaracteres son operaciones especificadas como alternancia |, relación () y y se repiten con *, + y ?. Con ^ las cantidades se pueden negar. Los metacaracteres son instrucciones para el software de procesamiento. Los caracteres regulares pueden estar delante o detrás de los metacaracteres, su significado formal será distinto. La mayoría de las implementaciones trabajan con un motor especial de regex que analiza e interpreta las expresiones regulares listadas y verifica los recursos por instancias.

  • Carácter regular: Todos los números del 0 al 9. Todas las letras de un alfabeto y algunos caracteres especiales (comas, guiones, punto y coma). Importante: El alfabeto depende del juego de caracteres utilizado (por ejemplo, Unicode o ASCII).
  • Clases de carácter: es, por ejemplo, un número del 1 al 9. Mientras que encontraría todos los tabuladores. Otras opciones son l para minúsculas, s para todos los espacios o u para todas las letras mayúsculas.
  • Metacaracteres:
 [] () {} | ? + - * ^ $  

Con una barra invertida colocada antes, se puede cancelar un metacaracter.

Importancia práctica

Los siguientes métodos pueden implementarse con expresiones regulares:

  • Coincidencia de patrones: Por medio de el uso de un algoritmo de coincidencia de cadenas, los textos pueden ser revisados para la ocurrencia de patrones. Para este caso una expresión regular representa un recopilatorio de cadenas con sus ocurrencias reconciliadas en el texto. La expresión regex especifica el patrón, el motor verifica el patrón contra un recurso (por ejemplo, un documento HTML o un texto). En determinadas circunstancias, se puede especificar una norma de reemplazo para modificar de forma directa los strings encontrados. Se pueden usar cuantificadores para reducir los resultados. Ejemplos: la verificación de una dirección de email introducida con respecto a su corrección formal, o la búsqueda de dominios de primer nivel en una lista de URLs.
  • Globbing: Los nombres de archivo se agregan a los marcadores de posición para elegir todos los archivos en un formato particular, por ejemplo. El comodín «muestra.*» encontraría todos los archivos en un sistema de administración de archivos que empiezan con «sample», pero son formatos de archivo distintos como.txt. o.doc. El asterisco representa la variedad de formatos de archivo. Globbing además se usa en ataques de denegación de servicio donde los servidores están siendo sobrecargados intencionalmente.[2]
  • Truncation: En las búsquedas en bases de datos, los términos de búsqueda suelen abreviarse o truncarse usando comodines. El término «muestra*» encontraría todos los términos que comienzan con muestra y terminan con otras letras, como por ejemplo, coincidencia de muestras, prueba de muestras o ejemplo de muestra. Por truncamiento, el espacio de búsqueda se amplía. Ejemplo: En una búsqueda de biblioteca, se pueden hallar todas las entradas que contienen una definición de búsqueda específico.
  • Stemming: Al frenar, se atribuyen a la palabra tallo distintos variantes morfológicas de una palabra. Las negaciones y conjugaciones de palabras pueden así reducirse a su raíz o raíz lingüística. Este método se usa en la recuperación de información (por ejemplo, por medio de de motores de búsqueda) y en la informática teórica. Ejemplo: Google probablemente usa un procedimiento semejante en el contexto de la búsqueda orgánica[3].

Importancia para la optimización de motores de búsqueda

Regex puede ser muy útil para algunos trabajos en el área de la optimización de motores de búsqueda[4] . Las herramientas de seguimiento y análisis como Google Analytics disponen una aplicación para regex.[5]

En el buscador de Google Analytics, las expresiones regulares sirven para determinar filtros para las direcciones IP. Los filtros individuales se pueden definir en la configuración del perfil excluyendo las direcciones IP de uno o más visitantes. De esta manera, el tráfico de un rango de direcciones IP no se incluirá en los informes. Esto es útil si desea excluir visitas irrelevantes de las estadísticas de visitas, como sus propios trabajadores.

Además se pueden procesar distintos segmentos en el buscador de Google Analytics usando regex. Por ejemplo, se pueden excluir las búsquedas que contengan un nombre de marca. Para este propósito, se definiría un segmento, que incluye sólo tráfico orgánico y no el nombre de marca que ha sido definido de antemano utilizando regex: «[mm] ejemplo de compañía» para deletreos con letras mayúsculas y minúsculas. Además se pueden excluir distintos tipos de palabras clave para averiguar cuánto tráfico se genera con dos o tres palabras clave específicas. Lo mismo se aplica al tráfico de otras fuentes como boletines de noticias, correos electrónicos y asociaciones de enlaces de sitios web externos.

Una táctica semejante puede ser útil para el monitoreo de los canales de los medios sociales. Una fuente se definiría para este caso especificando las posibles fuentes con la expresión regular. Por ejemplo, «facebook|twitter|youtube|LinkedIn.» Google Analytics no es lo único que ofrece una serie de alternativas que pueden ser explotadas con expresiones regulares[6]. Los weblogs y los entornos de servidor además pueden interpretar y procesar regex. Así, los sitios web pueden ser redirigidos y etiquetados como canónicos por medio de de ciertos patrones que son descritos por regex.[7]

Enlaces Web

R Marketing Digital