Sunteți pe pagina 1din 2

Antes de empezar a hablar de ellas mejor dejar claro al principio qu son :-D.

A veces necesitamos encontrar algo concreto en un texto o cadena, o reemplazar algo por otra cosa; ya sea en una aplicacin, o en un lenguaje de programacin. Por ejemplo si queremos buscar "tag" y reemplazarlo por "etiqueta" la mayora de aplicaciones o lenguajes tienen una funcin para hacerlo de forma sencilla. Pero a veces lo que queremos hacer es ms complejo, porque puede que en vez de ser una palabra o parte de palabra simple, necesitemos hacer algo como "bscame todas las palabras que acaben en 'f' y que empiecen por un nmero del 2 al 71" (por ejemplo) o "reemplaza las palabras que contengan este grupo de letras por esto". En estos casos podemos utilizar las expresiones regulares (que se pueden llamar regex o regexp de forma abreviada), que es como un lenguaje para poder definir exactamente qu es lo que queremos buscar o reemplazar. Definicion Las expresiones regulares son un sistema cmodo, rpido y potente de realizar un filtrado sobre un determinado caso, y obtener un grupo ms reducido y especfico, excluyendo los resultados que no coincidan con el patrn dado. En computacin, una expresin regular da una manera concisa y flexible para hallar un texto especfico en una cadena de caracteres. Este concepto fue popularizado porque vena en algunas distribuciones de Unix, en particular en el editor ed y en el comando grep. Una expresin regular se escribe en un lenguaje formal que puede ser interpretado por un procesador de expresiones regulares, el cual es un programa que examina el texto e identifica las partes que estamos buscando, de acuerdo a la especificacin dada.

Aplicaciones Como hemos visto anteriormente, la potencia de las expresiones regulares es increblemente amplia. Suele ser especialmente til para los programadores (PHP, Perl, Java, .NET...), que pueden desarrollar y reconocer patrones complejos de una forma sencilla. Pero eso no queda ah, si no eres programador tambin puedes hacer uso de las expresiones regulares para multitud de tareas. Muchas aplicaciones utilizan expresiones regulares. Bloc de notas: Aunque no el base de Windows, sino notepad2. Especialmente til para reemplazar cadenas en textos en los que estn repetidos varias veces (ficheros HTML, de texto, ...).

Comandos UNIX: Comandos de administrador de sistemas como grep, egrep, awk, sed y tantos otros. Recuerda que si usas Windows, puedes utilizar muchos de estos comandos con UNIXUtils. Renombrado masivo: Como en el ejemplo que utilic, existen multitud de programas para renombrar ficheros utilizando expresiones regulares como RegEx Renamer. Emule: El mismsimo emule permite realizar busquedas con un grupo reducido de expresiones regulares, por ejemplo si queremos buscar canciones que empiecen por Spectrum (para buscar de este grupo musical), podemos escribir ^Spectrum y especificar ficheros de audio, evitando asi canciones que tengan el nombre Spectrum en su ttulo. Adems enPreferencias / Opciones adicionales / Mostrar ms controles (Controles de modo avanzado) puedes activar las expresiones regulares para filtrar categoras en las pestaas de trfico. Renombrado de MP3: Con Quick File Rename, se mezcla la potencia de las expresiones regulares a la capacidad de utilizar los tag ID3 para renombrar tus archivos.

Ejemplos: Para comprender la definicin, pondremos un ejemplo. Tenemos varias carpetas, con miles y miles de imgenes con distintos nombres y formatos (JPG, PNG, GIF...) y nos interesa separar todas las fotografas en las que aparece Ramn (ramon_borracho.jpg, ramon45.jpg, ramon_de_viaje.bmp...). La primera opcin que se nos ocurre es hacerlo de forma manual, cosa que nos consumira demasiado tiempo si se trata de ms de, por ejemplo, 5.000 fotografas. La siguiente opcin es utilizar los comodines (wildcards): Utilizando los comodines * (cualquier conjunto de caracteres) y ? (cualquier carcter, slo uno), podemos obtener ms precisin de una forma sencilla: ramon*.jpg, ramon*.???, *ramon*.*, ...). En estos casos, la potencia de los comodines suele ser suficiente. Sin embargo, el mtodo anterior es limitado, puesto que, si quisieramos detectar fotografas con nombres como ramn.jpg, r4m0n.jpg, raaamoncito.jpeg pero no incluir romn.jpg, romn.jpg y slo incluir imagenes con formato jpg no habra forma de discriminar entre ambas opciones, salvo utilizando una expresin regular: ^.*ra|4m(o|0|)n.*\.jpg$. Expresiones regulares (metacarcteres) El carcter ^ indica el comienzo de la cadena. Dentro de una clase indica inexistencia. . es un comodn (cualquier carcter, como ? en wildcards). * se refiere al carcter (o agrupacin) anterior, puede aparecer 0 ms veces. + es idntico al anterior, pero apareciendo 1 ms veces. Es equivalente a xx*, donde x es el carcter a repetir. Los corchetes [] agrupan carcteres en clases, lo que indica posibilidad. El carcter | indica una alternativa, o lo que est a su izquierda, o lo que est a su derecha.

S-ar putea să vă placă și