Imagínese esto: es un explorador de datos intrépido que se aventura profundamente en el desierto indómito de los datos sin procesar. Armado con su confiable hoja de cálculo y una taza de café, se embarca en una búsqueda para extraer información significativa. Pero, por desgracia, lo que encuentra es una jungla de formatos inconsistentes, símbolos crípticos y errores tipográficos que parecen tener vida propia. No temas, intrépido manipulador de datos, porque en este reino caótico te espera un arma secreta: las expresiones regulares , la capa de superhéroe de la limpieza de datos.
¿Qué es una expresión regular?
En esencia, una expresión regular, comúnmente conocida como expresión regular , es una poderosa secuencia de caracteres que define un patrón de búsqueda. Es una herramienta versátil utilizada en varios lenguajes de programación y editores de texto para manipular y unir cadenas de texto según patrones o reglas específicas . Las expresiones regulares le permiten expresar patrones de búsqueda complejos de manera concisa, lo que facilita la búsqueda, extracción o modificación de partes específicas de datos de texto. Al combinar caracteres, metacaracteres y cuantificadores, puede crear patrones de expresiones regulares que coincidan con secuencias, caracteres o incluso estructuras más complejas específicas dentro de un cuerpo de texto más grande. Con sus amplias aplicaciones, las expresiones regulares se han convertido en un recurso invaluable para tareas de limpieza de datos, procesamiento de texto y reconocimiento de patrones.
expresiones regulares en JMP
Dentro de JMP, se accede y personaliza las expresiones regulares a través del triángulo rojo ubicado en Explorador de texto > Opciones de análisis > Personalizar expresiones regulares. Hay varias expresiones regulares disponibles para su uso, como HTML Link Grabber y el resaltador de números .

Puede personalizar expresiones regulares dentroJMP.
Si bien las expresiones integradas son útiles, la limpieza de datos puede requerir expresiones más personalizadas que se adapten mejor al conjunto de datos. Veamos un ejemplo sencillo, como eliminar todos los números de una cadena de texto. La expresión regular "\d+" realizará esta tarea. Esta expresión utiliza el metacarácter "\d" para hacer coincidir todos los dígitos (0-9) y el cuantificador "+" para indicar que uno o más dígitos deben coincidir. Si aplicamos esta expresión regular a la cadena "Tengo 5 manzanas y 10 naranjas", se identificarán los números "5" y "10". Al reemplazar estos dígitos con una cadena vacía, ha limpiado efectivamente sus datos de todos los números presentes.
Analicemos HTML Link Grabber para explicar un ejemplo más complejo. Esta expresión regular integrada en JMP es la siguiente:
<A>]*?)\3[^>]*)|(\s*[a-z]+\s*=\s*('|")([^>]*?)\6))*\s*></A>
Cada parte significativa de la expresión anterior se resume en la siguiente tabla:
| < d>
| Este metacarácter busca la etiqueta de anclaje de apertura en HTML que indica un hipervínculo. |
| href\s*=\s*('|") |
Esta sección coincide con el atributo "href" seguido de un signo igual y espacios opcionales, luego una comilla simple (') o una comilla doble ("). Captura la comilla de apertura en una referencia inversa. |
| ([^>]*?) |
Esto coincide con cualquier carácter que no sea el corchete angular de cierre (>). Lo más importante es que captura la URL, que es el objetivo principal de esta expresión. Tenga en cuenta que esta sección es similar a los especificadores de formato en la programación en C. |
| (\s*[az]+\s*=\s*('|")([^>]*?)\6) |
Este patrón coincide con cualquier atributo adicional dentro de la etiqueta de anclaje. Captura el nombre del atributo, un signo igual, espacios opcionales, el valor del atributo (entre comillas) y garantiza que la comilla de cierre coincida con la comilla de apertura. |
(Consulte Personalizar expresiones regulares en el editor de expresiones regulares (jmp.com) para obtener más información)
Si bien estos atributos y patrones pueden parecer complejos, hay mucha documentación y recursos disponibles para aprender y comprender lo que representa cada bandera.
Aplicación de expresiones regulares
Ahora que sabemos exactamente qué son las expresiones regulares y qué pueden hacer, ¿dónde son más útiles?
Bueno, es difícil limitarlo a una sola aplicación, pero lo guiaré a través de un ejemplo de filtrado de datos que hice para un proyecto de análisis de texto que cubre datos de la sección de discusiones de la comunidad de usuarios de JMP. El objetivo final de este proyecto era encontrar los términos y frases más utilizados publicados en los debates de la comunidad de usuarios.
A continuación se muestra un ejemplo de uno de los más de 48.000 comentarios de discusión. Tenga en cuenta que el formato HTML y las secuencias de comandos JSL hacen que sea muy difícil determinar el vocabulario que se utiliza en el comentario original.

Muestra de datos antes de la limpieza de expresiones regulares.
La limpieza manual de estos términos y el formato puede llevar meses o incluso años, pero con el uso de sólo unas pocas expresiones regulares, la limpieza se puede realizar instantáneamente.
Para empezar, quería eliminar cualquier contenido del lenguaje de secuencias de comandos JSL dentro de la discusión. Para lograr esto, utilicé la siguiente expresión regular:
<CODE class=" language-jsl">[\s\S]*?<\/CODE>|
|((([€¥₩£\$]|r\$)\s{0,2}[\.,]?[0-9][\.,0-9]*)|([\.,]?[0-9][\.,0-9]*\s{0,2}([€¥₩£\$]|r\$)))
A continuación, quería eliminar las etiquetas de formato HTML y CSS de los datos:
<[^>]*>
Finalmente, quería eliminar todos los números, decimales y palabras que contengan números:
\d+(\.\d+)?|\.\d+
Si observa el mismo mensaje de muestra original, podrá ver a continuación cómo cada expresión filtra los parámetros especificados:

Datos filtrados. Las palabras que no están filtradas se resaltan en amarillo.
Explorando los resultados
Una vez que hayamos terminado de filtrar nuestras expresiones personalizadas, ¿cómo cambian nuestros resultados? Veamos las comparaciones lado a lado de las nubes de palabras para el conjunto de datos sin procesar y sin filtrar versus el conjunto limpio de expresiones regulares:
Antiguo (sin expresiones regulares)
|
Nuevo (con expresiones regulares)
|
|
|
Tenga en cuenta que antes de utilizar expresiones regulares, los datos se rellenan con formato HTML, formato JSL y contenido completamente ajeno. A los efectos de mi análisis, estos datos son completamente irrelevantes. Después de emplear expresiones regulares, los datos son mucho más útiles para el análisis y pueden proporcionar resultados muy interesantes con un poco más de trabajo.
La realización de un análisis de temas sobre los datos limpios proporcionó los siguientes resultados sobre qué temas se responden con mayor frecuencia dentro de la comunidad de usuarios, que se muestran a continuación:

Análisis de cinco temas sobre datos de discusiones.
Los cinco temas proporcionados se pueden generalizar en diferentes categorías de preguntas sobre las que hacen los usuarios:
- Tema #1: Diseño de experimento (DOE)
- Tema 2: Modelado predictivo y aprendizaje automático
- Tema #3: Respuestas instructivas
- Tema #4: Formato y análisis de datos
- Tema #5: Programación y scripting
Coincidencia de texto de columna Regex
Las expresiones regulares no se limitan a su aplicación desde una ventana de Exploración de texto; También puede acceder a ellos al crear una nueva columna de datos con una fórmula de cadena. Para acceder a esto, vea Cols -> Utilidades -> Nueva columna por coincidencia de texto.

Regex está disponible en cualquier columna de texto de un archivo JMP.
Al seleccionar "Nueva columna por coincidencia de texto", se abrirá la misma ventana del editor de expresiones regulares que la del Explorador de texto. Todo el proceso de curación de datos es exactamente el mismo; sin embargo, su texto filtrado ahora se formateará automáticamente en una nueva columna, como se muestra en la imagen a continuación:

El mismo proceso se muestra fuera de una ventana del Explorador de texto.
Pensamientos finales
Las expresiones regulares son una herramienta indispensable en el ámbito de la exploración de datos. Ofrecen una solución versátil para manipular y hacer coincidir cadenas de texto con el resultado deseado. Con expresiones regulares, podemos desbloquear todo el potencial de nuestros datos.
Para obtener más información sobre expresiones regulares, consulte:
Customize Regex in the Regular Expression Editor (jmp.com)
Cuantificadores en expresiones regulares | Microsoft aprende
Referencia de expresiones regulares (regular-expressions.info)
Función Regex (jmp.com)
Ayuda JMP