Funcionalidades en los Líderes BI, capítulo 1: REGEX

  • Artículos
  • Automatización & BI

¿Qué es REGEX?

Regex, que viene del inglés Regular Expressions, es una técnica utilizada en Business Intelligence (BI) y, en la práctica, es una secuencia de caracteres y símbolos que se convierten en patrones de búsqueda para otro texto. Es una técnica desarrollada en informática teórica y teoría del lenguaje formal. Por lo general, estos patrones son utilizados como funcionalidades por algoritmos dentro de lenguajes de programación, sistemas operativos, herramientas ETL, de Business Intelligence, Bases de Datos, Ofimática y muchos más.

¿Cuándo necesitamos de REGEX?

Particularmente en Business Intelligence, muchas veces es necesario hacer operaciones de ETL (Extracción Transformación y Carga), para limpiar, dar formato y validar los datos que nos entregan. Es ahí cuando tenemos la posibilidad de usar Regex para resolver problemas de manera rápida, eficiente y hasta elegante.

Ejemplos de uso:

  • Validación de formato de correo electrónico
  • Validación de formato RUT
  • Validación de formato de número telefónico
  • Unificar formato en una columna fechas
  • Buscar y reemplazar contenido en una posición especifica de un texto
  • Selección de un subconjunto de archivos en una carpeta
  • Extracción de contenido desde un formato HTML, JSON, XML y otros

Ilustración 1: Ejemplo de Expresión Regular para validar un formato de fecha del tipo dd-MM-yyyy

Caso práctico – Problemática

Muchas veces los datos no vienen listos ni cómodos para usarlos con una herramienta de visualización BI, un caso recurrente es cuando los datos de salida de un software de encuestas entregan las respuestas y preguntas codificadas. Dentro de este contexto, Regex se hace muy útil para buscar un valor en particular (respuesta codificada) dentro de otro texto diccionario de preguntas con sus posibles valores de salida (las alternativas).

Ilustración 2: Ejemplo de repuestas codificadas en encuesta

Caso práctico – Solución

La solución consiste en encontrar un patrón Regex que permita identificar y extraer un valor buscado mediante una clave, dentro de un diccionario en formato JSON (¡servirá para cualquier pregunta de la encuesta!).

En este caso, un patrón que nos sirve es 2:“([^“]+)“, donde el número 2 en el ejemplo, será posteriormente la variable de las respuestas codificadas de cada pregunta, los caracteres en negro son literales y se busca ese formato en el diccionario. Los paréntesis () en Regex, indican un grupo, que son una porción del texto que hace match con el patrón. Finalmente, el texto [^“]+ nos dice que acepta cualquier carácter 1 o mas veces, que sea distinto de comillas (“).

Ilustración 3: Testeo de la Expresión Regular

Existen sitios como REGEX 101 que te ayudan a escribir un Regex, entender su sintaxis y probarlo en línea!

El resultado esperado sería algo así:

Implementación Power BI

Power BI no cuenta con una implementación nativa de Regex, por lo cual se necesita insertar scripts de Python o R a nivel de Power Query, además de instalar el entorno del lenguaje elegido previamente.

  1. Ir a Power Query Editor, luego en la pestaña Transform, click en Run Python Script
  2. Aplicar la función de la librería RE de Python, re.search(pattern,string).group(g), la cual busca el pattern en el string y luego retorna la sección del grupo g del Regex.

Ilustración 4: Script de Python en Power Query

Implementación en Tableau

  1. Generar un campo calculado que lo llamaremos, respuesta_final
  2. Aplicar la función REGEX_EXTRACT_NTH(string,pattern,index), la cual retorna el grupo n° (index) del string que coincide con el pattern

Ilustración 5: Campo calculado en Tableau

Cierre

Usando las herramientas líderes del mercado en Bussiness Intelligence, como lo son Power BI y Tableau, hemos podido resolver una problemática recurrente con la ayuda de Regex, además de conocer su potencia y los diversos usos en los que puede ayudar cuando nos enfrentamos a problemas de ETL, en el inicio de un proyecto de visualización.