Está usted en Indice > Programas > Editores > DreamWeaver > Lecciones y Paso a Paso > Expresiones Regulares con DreamWeaver
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Expresiones Regulares con DreamWeaver

Expresiones Regulares con DreamWeaver


De hecho lo que vamos a mostrar aquí sobre expresiones regulares se puede aplicar en muchos otros entornos (lenguajes de programación, programas, shells, etc) pero vamos a utilizar la herramienta de búsqueda y reemplazo de DreamWeaver para realizar los ejemplos.

Las expresiones regulares son una serie de símbolos que nos permiten definir un un patrón para identificar una serie de caracteres. Por ejemplo, si quisieramos seleccionar todas las ocurrencias que contengan "dream." seguidas de dos números hariamos lo siguiente:
dream.[0-9]{2}

Puede parecer muy críptico, pero vamos a ver uno a uno el significado de los símbolos de las expresiones regulares y luego explicaremos más a fondo el ejemplo anterior:

Símbolo Descripción
^

Indica que la cadena a buscar tiene que estar al principio.
^dream Encuentra cualquier cadena que empiece por dream

$ Indica que la cadena a buscar tiene que estar al final.
dream$ Encuentra cualquier cadena que acabe por dream
* Indica que la sucesión de caracteres o caracter que le precede se puede repetir una o varias veces.
dream* Encontaría resultados como: drea, dream, dreammmm
+ Exactamente igual que la anterior, pero como mínimo una ocurrencia
dream+ Encontraría: dream, dreammmm pero NO drea
? Indica que puede existir o no la sucesión de caracteres o caracter que le precede.
dream? Encuentra: drea, dream, pero NO dreammmm
{} Sirven para indicar la cantidad exacta de repeticiones de la sucesión de caracteres o caracter que le precede.
dream{0,2} Encontraría: drea, dream, dreamm, pero NO dreammmm
dream{2,} Encontraría las palabras que tuvieran drea seguida de dos o más emes.
dream{4} Encontraría las palabras que contengan drea seguidas de exactamente 4 emes.
()

Quizá te estés preguntando como hacer para aplicar todo lo anterior con más de un caracter. Los paréntesis nos solucionan este problema. Podemos agrupar una serie de caracteres y aplicar lo que ya hemos aprendido.
dre(am)+ Encuentra: dream, dreamam, dreamamam, pero NO dre

[]

Los corchetes nos permiten definir un juego de caracteres válidos para nuestra búsqueda.
dream[0-9]+ Encuentra: dream0, dream1, dream2, ..., dream9, pero no dream
dream[a-z] Encuentra cualquier cadena que empiece por dream seguida de un caracter alfabético.

También podemos usar el circunflejo (^) dentro de los corchetes para indicar negación.
dream[^a-z]: Encuentra cualquier cadena que contengra dream y no esté seguida de un caracter alfabético.

.

El punto significa cualquier caracter. Sabiendo esto podemos decir que:
dream.+ : Encuentra cualquier cadena que contenga dream seguida de uno o más caracteres cualquiera.

Sirve para "escapar", es decir, eliminar el significado de los símbolos listados encima de este. Supongamos que queremos buscar dream* y no queremos que el asterisco signifique una o más emes. Hariamos lo siguiente:
dream*
Y si quisieramos buscar dream
dream\


Ahora que ya sabemos el significado de cada símbolo recordemos el ejemplo inicial:

dream.[0-9]{2}

Escapamos el punto para que no tenga significado como expresión regular e indicamos que queremos bucar exactamente dos números.

Para que quede bien claro y podamos ver como funciona utilizaremos la herramienta de búsqueda y reemplazo del DreamWeaver.

Una vez abierto el DreamWeaver creamos un nuevo documento y escribimos lo siguiente:

dreamweaver
dreammmm
dream
dreamm
drea
dream.23
dreamamamam
dream*31

Seguidamente nos dirigimos a Edición > Búsqueda y Reemplazo o directamente pulsamos CTRL+F para que nos aparezca la siguiente ventana:

buscar

Asegúrate de marcar la opción "Use Regular Expresions" antes de realizar cualquier búsqueda con expresiones regulares.

Manos a la obra! Ya podemos empezar a probar alguno de los ejemplos citados en el listado de símbolos.
Probamos con "dream*" para empezar y pulsamos Find Next repetidas veces hasta que nos diga el total de aciertos. Veremos que todas las palabras se irán marcando una a una cada vez que pulsamos Find Next. Nos marca todas las palabras ya que todas coinciden con nuestra búsqueda. Probemos a cambiar el asterisco por un "+" tal que quede así "dream+". Repetimos el proceso y tal como esperábamos, se marcan todas, excepto drea.

Hagamos ahora una expresión regular que nos encuentre sólo dream.23 y dream*31 . Una solución sería la siguiente:

dream(.|*)[1-3]{2}

Pero no sería la única, aquí van otros ejemplos (algunos no muy acertados, pero válidos en este caso):

dream[.*1-3]{3} "NOTA: dentro de los corchetes, los símbolos pierden su significado excepto ^ y -"
(dream)*.***(1|2|3){2}
dream(.|*)[0-9]{2}

Y seguro que a tí se te ocurre alguna más :)

Bien, ahora ya sabemos buscar cualquier cosa, pero lo que realmente nos puede ahorrar mucho trabajo es el reemplazo y las expresiones regulares son geniales para ello.

Antes de ponernos con el reemplazo hemos de saber que todo lo que se encuentre dentro de paréntesis quedará guardado en variables. Veamos un ejemplo.

Supongamos que tenemos lo siguiente en nuestro documento:

dream99.jpg
dream75.jpg

Y queremos reemplazarlo por 99imagen.gif y 75dream.gif respectivamente. En este caso sería muy facil hacerlo sin expresiones regulares, pero si tuvieramos miles de ocurrencias a reemplazar no pensariamos lo mismo. Empezamos escribiendo la expresión regular que nos encontrará esas imágenes.

dream([0-9]{2}).jpg

Hemos añadido paréntesis porque necesitamos el valor que encuentre dentro de ellos.
Ahora pasamos al cmapo "Replace With:" y escribimos:
$1imagen.gif
Pulsamos sobre Replace All y voilà! Obtenemos:

99imagen.gif
75imagen.gif

Con $1 hemos indicado que queremos escribir el contenido del primero paréntesis, de esta forma con $ seguido de un n número indicamos que queremos escribir el contenido del enésimo paréntesis.

En este escrito hemos aplicado las expresiones regulares en DreamWeaver pero las podemos usar en muchos más sitios. Aquí van unos cuantos ejemplos.

ModRewrite en Apache - Potente módulo para reescribir urls en apache. Gracias a las expresiones regulares podemos hacer que /file.php?var=algo se convierta en /file/var/algo o cualquier cosa que se te ocurra.

Perl - Lenguaje de programación donde reside el reino de las expresiones regulares ;)

Muchísimos otros lenguajes de programación soportan expresiones regulares.

SmartFTP - Permite aplicar filtros y otras opciones con expresiones regulares

 

Por Alex para WebTaller




Usuarios que han visto este tema también han visto...

- Tablas en DreamWeaver
- Marquesinas en DreamWeaver
- Escrito sobre la edición de enlaces en dreamweaver.
- Poner un enlace al Email en DreamWeaver
- Manejo de Hojas de Estilo CSS con Dreamweaver CS3


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Publicidad








Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 18-01-2017 a las 16:03:16