Archivo de la etiqueta: truco

Introducción a las expresiones regulares

Según la wikipedia una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos.

Ayuda a encontrar elementos en un texto que coincidan con la descripción de la expresión de un modo más simple y rápido que de cualquier otra forma.

Las expresiones regulares tengo que reconocer que son algo complicadas pero cuando se entiende tiene un enorme potencial. Pero algún día hay que empezar no? Así que mejor que nos pongamos manos a la masa.

Carácteres básicos:

  • \ para mi probablemente sea uno de los caracteres más importantes. Sirve para hacer que el carácter que precede pierda su significado y pase a ser un carácter normal. Por ejemplo \* pasaría a buscar un * o \\ (doble barra invertida) pasaría a ser una sola.

  • . indica que le falta un carácter es decir ‘.asa’ puede devolver ‘casa’, ‘basa’… pero nunca ‘asa’.
  • ? indica que el elemento predecesor puede estar o no, por ejemplo ‘casa?’ Puede devolver ‘casa’ o ‘cas’.
  • * este elemento permite que el elemento anterior pueda estar desde 0 veces a infinitas, por ejemplo, ‘casa*’ puede ser ‘cas’, ‘casa’ o ‘casaaaaaaaaa’
  • + implica que el carácter al que está asociado pueda por lo menos una o más veces. Sigamos con el ejemplo ‘casa+’ puede ser ‘casa’, ‘casaaaa’ pero en ningún caso ‘cas’.
  • ^ indica que está en el principio de la cadena.

  • $ este por el contrario indica que se encuentra en el fin.

  • () sirve para agrupar un conjunto de elementos, por lo que ‘(casa)‘ pararía a ser un solo elemento ocasionando que ‘(casa)+’ pudiera devolver ‘casacasacasa‘ o simplemente ‘casa’.
  • | (barra vertical) sirve para marcar una ‘o’ (para los programadores seria el equivalente a una or). Por ejemplo ‘(casa|hogar)’ puede devolver ‘casa’ o ‘hogar’, en ningún caso ‘casahogar’.
  • [] los corchetes brindan la posibilidad de escoger entre uno de los elementos que están en su interior. Se pueden marcar rangos usando el guión medio. ‘[a-z]‘ nos puede devolver cualquier letra minúscula de la ‘a‘ a la ‘z‘.
  • {} puede contener uno o dos números separados por una coma. Vendría a ser el elemento propio equivalente y de uso idéntico a ?, +, * pero personalizado. Por ejemplo ‘{2, 7}‘ quiere decir que el elemento se puede repetir mínimo dos veces pero con un máximo de 7. Con ‘{7,}‘ indicas que de 7 hasta infinito.

Mi primera expresión regular pensada íntegramente por mi y que funciona, sirve para encontrar las url de un texto.

(https?\:\/\/)*[0-9a-zA-z\-\_\.]+\.(com|es|net|org|info)\/*[a-zA-z\-\_\.\/]*

 Pero vamos a verla por partes:

 (https?\:\/\/)* => Este trozo indica que tiene que usar el protocolo ‘http’ o ‘https’ (de aquí el interrogante después de la ‘s’ juntamente con \: para indicar que van los dos puntos y \/ dos veces esto para señalar que quiero una barra normal.

[0-9a-zA-z\-\_\.]+ => esto sería el cuerpo de la url antes de la extensión. Puede constar de uno o más elementos en minúsculas, mayúsculas, números guiones o puntos (subdominios).

\.(com|es|net|org|info) => indica que ahora consta de un punto seguido de una de las extensiones com, es, net, org o info.

\/*[a-zA-z\-\_\.\/]* => y finalmente brinda la posibilidad de que sea un subdirectorio

Mejora tu memoria III: Aprende vocabulario de una lengua extranjera

Siguiendo con la tónica de hackear nuestra propia mente para mejorar la memoria y el aprendizaje hoy toca ver un método para aprender vocabulario de una lengua extranjera. Si todos nos tenemos que pirar a Alemania esto nos va a ayudar.

Este “hack” se trata de descomponer las palabras de la lengua extranjera en palabras de la lengua que nos sintamos más cómodos y comprendamos.

Con estas palabras creamos asociaciones entre ellas y con el significado de la palabra original. Estas asociaciones las podemos hacer con el método que vimos en el primer post de esta “saga”. Evidentemente no tienen porqué ser idénticas 100% pero como más se parezcan mejor, menos uso de la “memoria real” vamos usar. Se entiende memoria real como la que almacena las cosas aunque no podamos recordarlas.

Como ya hemos hablado del alemán voy a poner algunos ejemplos en alemán y otros como si fuéramos ingleses y aprendiéramos español. Estos últimos son los que se exponen en el libro.

Sprechen => podría parecerse a “exprés” ya sé que es mucha imaginación pero cada cual le sonará a algo distinto. Y sprechen quiere decir hablar. Por lo que podríamos ver un tren (por lo menos a mi me recuerda un tren exprés) en los que sus vagones sean letras.

Mindestens => podria ser “mint” + “es” + “tens(o)” esta vez podemos ver que lo hemos descompuesto en 3 palabras. Podemos hacer una asociación de un árbol de eucalipto, con una cara tensa. Mindestens quiere decir “por lo menos” por lo que nos podríamos imaginar el árbol tenso rodeado de otros señalarlo. Esto es algo muy personal y cada cual va a tener su propia imagen.

En el libro se ponía el ejemplo de “pájaro” y decía que se parecía a “park car”. Por lo que se imaginaba un coche en un aparcamiento con muchos pájaros dentro.

Como podéis ver esto depende completamente de cada persona.