Mejora tus búsquedas, regular expressions

Supongo que esto parecerá muy básico para muchos amigos, pero recordemos que esto es la ciencia para TODOS.

Algo estupendo de los documentos «electrónicos» son las búsquedas automáticas, confieso que a veces las echo de menos en los libros en papel.

¿Que resulta que te acabas de enterar de que «internet» se pone «Internet» y lo tienes mal en toooodo el documento? No hay problema, Edición->Buscar y ahí te van a ir saliendo todas las veces que has puesto eso, sin faltar una.

Mejor aún, ¡puedes reemplazar automáticamente esa palabra por la forma correcta! Aquí tenéis la conocida ventana del omnipresente Word.

Fuente de la imagen

Hasta aquí es bien sabido, lo que quizá no conozcáis sea las «expresiones regulares» (regular expressions).

Imagina que no estoy buscando una palabra concreta, o un número concreto, sino… un número. Tengo un texto enorme plagado de números de teléfono y quiero «extraerlos», o borrarlos, o lo que sea, pero primero tengo que encontrarlos.

O bien, estoy buscando direcciones web, o direcciones de correo. No sé las palabras o los números exactos… pero sí se «cómo son». Unas letras, una @, unas letras más, un punto… ¿me seguís?

Para eso están las expresiones regulares, suelen usarse dentro de los lenguajes de programación, pero he encontrado que están directamente disponibles en la ventana de búsqueda del procesador de texto libre Writer, que forma parte de la suite ofimática LibreOffice, una alternativa libre al popular producto de Microsoft.

Fuente de la imagen

Basta con marcar la casilla para poder usar las expresiones «genéricas» y buscar cosas como «principio de línea», «final de línea», «párrafos en blanco»…

Claro que hay que hacerlo con códigos particulares, pero no es complejo, aquí tenéis una lista, mirad.

Por ejemplo ^$ busca párrafos vacíos.

Acabo de ver en este post que existe una extensión, que se instala en un momento en Writer para que no tengas que andar ni siquiera buscando estas expresiones. Así que más fácil aún.

Os voy a dejar un documento con una aplicación práctica que surgió hablando con @Daurmith que hace unos hilos estupendos sobre el Señor de los Anillos.

Le pedimos que no dejara que esos hilos se perdieran como lágrimas en la lluvia y que los pusiera de alguna manera accesible, a lo que amablemente accedió aquí.

El problema es, ¿cómo extraer sólo los textos y quitar todo lo demás? Para poder editarlo luego como mejor parezca.

¡Con expresiones regulares!

No es difícil, incluso para usuarios novatos, como yo.

No os propongo algo que algunos amigos conseguirían en unas pocas líneas de código, sino algo que cualquier usuario básico de un procesador de texto puede llevar a cabo.

Allá vamos.

  1. Abres un hilo (tienes que hacerlo hilo a hilo)
  2. Seleccionas todos los tuits con el ratón
  3. Los pegas en un documento en blanco (con pegado especial como texto)
  4. Reemplazas (ctrl+alt+b) por «nada», buscando este texto .(?!.+#Sdla) y con las opción de expresiones regulares seleccionada.
  5. Eso quita todo menos los tuits, pero deja líneas en blanco. Las quitas con otro reemplazar por «nada» buscando esto ^$
  6. Y ya tienes el texto plano de los tuits con un cambio de línea en cada uno de ellos, y ahora… lo que desees.

Dejadme que os explique qué significan las expresiones que he usado yo.

.(?!.+#Sdla)  Busca cualquier carácter (.) que no (?!) vaya seguido de cualquier cantidad de caracteres (.+) y el hashtag, y los reemplazo por nada.

Eso me deja un montón de líneas en blanco que me cargo con el siguiente paso.

^$ Busca párrafos en blanco y si los reemplazo por nada… agur!

¡Ya está!

A mí me hizo «ilu»… he llevado a cabo algo que a mano hubiera sido prohibitivo por tiempo. Esto es lo que pasa cuando nos crece el volumen de datos, o bien automatizamos, o no lo podremos hacer.

Es más que probable que haya formas más eficientes de hacerlo, pero esta funciona, es fácil de entender y es asumible en tiempo.

Yo ya tengo otro superpoder… ¿y tú?

 

 

2 Responses to Mejora tus búsquedas, regular expressions

  1. Angeles Benito dice:

    «se perdieran como lágrimas en la llubia…», preciosa expresión, pero mejor así:…. «se perdieron como lágrimas en la lluvia…»
    Enhorabuena por tu labor divulgativa científica tan simpática y entregada.

    Me gusta

Deja un comentario