Expresiones regulares Dreamweaver CS4 CS5 CS5.5

La gran mayoría de los grande editores poseen la utilizad de usas expresiones regulare en su ventana de  buscar y reemplazar.

Por ejemplo el conocido Microsoft Word, se pueden usar expresiones regulare y se pueden hacer verdaderas maravillas.

Las expresiones regulares se pueden usar para muchos fines, el más típico es en programación, por ejemplo en la validación de datos. (Más conocido como REGEX ). Pero en este articulo lo vamos a usar para trabajar con códigos y agilizar la modificación del código en una página web, en vez de validar los datos entrantes como es de común uso.

Antes de nada, os pongo un fragmento de la ayuda de Adobe, explicando brevemente el tema:

[spoiler /Clic para mostrar la Ayuda de Adobe/ /Clic para ocultar la Ayuda/]

Expresiones regulares

Las expresiones regulares son modelos que describen las combinaciones de caracteres en el texto. Utilícelas en las búsquedas para describir conceptos como líneas que comiencen por “var” y valores de atributo que contengan un número.

La tabla siguiente contiene los caracteres especiales de las expresiones regulares, su significado y ejemplos de uso. Para buscar texto que contenga uno de los caracteres especiales de la tabla, anule el valor del carácter colocando una barra invertida delante de él. Por ejemplo, para buscar el asterisco en la frase
some conditions apply*

, el modelo de búsqueda deberá ser el siguiente: apply\*. Si no anula el valor del asterisco, encontrará todas las apariciones de “apply” (así como de “appl”, “applyy” y “applyyy”), no sólo las que van seguidas de asterisco.

Carácter

Texto buscado

Ejemplo

^ Principio de entrada o línea. ^T encontrará “T” en “This good earth”, pero no en “Uncle Tom’s Cabin”
$ Fin de entrada o línea. h$ encontrará “h” en “teach”, pero no en “teacher”
* El carácter anterior cero o más veces. um* encontrará “um” en “rum”, “umm” en “yummy” y “u” en “huge”
+ El carácter anterior una o más veces. um+ encontrará “um” en “rum” y “umm” en “yummy”, pero no en “huge”
? El carácter anterior una vez como máximo (es decir, indica que el carácter anterior es opcional). st?on encontrará “son” en “Johnson” y “ston” en “Johnston”, pero no en “Appleton” o “tension”
. Cualquier carácter individual, salvo el de salto de línea. .an encontrará “ran” y “can” en la frase “bran muffins can be tasty”
x|y x o y. FF0000|0000FF encontrará “FF0000” en bgcolor=”#FF0000″ y “0000FF’” en font color=”#0000FF”
{n} Exactamente n apariciones del carácter anterior. o{2} encontrará “oo” en “loom” y las dos primeras oes de “mooooo”, pero no “money”
{n,m} Como mínimo n y como máximo m apariciones del carácter anterior. F{2,4} encontrará “FF” en “#FF0000” y las cuatro primeras efes de #FFFFFF
[abc] Cualquiera de los caracteres entre corchetes. Especifique un rango de caracteres con un guión (por ejemplo, [a-f] es equivalente a [abcdef]). [e-g] encontrará “e” en “bed”, “f” en “folly”, y ”g” en “guard”
[^abc] Cualquier carácter que no esté entre paréntesis angulares. Especifique un rango de caracteres con un guión (por ejemplo, [^a-f] es equivalente a [^abcdef]). [^aeiou] encontrará inicialmente “r” en “orange”, “b” en “book” y “k” en “eek!”
\b Límite de palabra (como un espacio o un retorno de carro). \bb encontrará “b” en “book”, pero no en “goober” ni “snob”
\B Cualquiera que no sea un límite de palabra. \Bb encontrará “b” en “goober”, pero no en “book”
\d Cualquier carácter de dígito. Equivalente a [0-9]. \d encontrará “3” en “C3PO” y “2” en “apartment 2G”
\D Cualquier carácter que no sea de dígito. Equivalente a [^0-9]. \D encontrará “S” en “900S” y “Q” en “Q45”
\f Salto de página.
\n Salto de línea.
\r Retorno de carro.
\s Cualquier carácter individual de espacio en blanco (espacios, tabulaciones, saltos de página o saltos de línea). \sbook encontrará ”book” en “blue book”, pero no en “notebook”
\S Cualquier carácter individual que no sea un espacio en blanco. \Sbook encontrará “book” en “notebook”, pero no en “blue book”
\t Tabulación.
\w Cualquier carácter alfanumérico, incluido el de subrayado. Equivalente a [A-Za-z0-9_]. b\w* encontrará “barking” en “the barking dog” y “big” y “black” en “the big black dog”
\W Cualquier carácter que no sea alfanumérico. Equivalente a [^A-Za-z0-9_]. \W encontrará “&” en “Jake&Mattie” y “%” en “100%”
Control+Intro o Mayús+Intro (Windows), o Control+Retorno o Mayús+Retorno o Comando+Retorno (Macintosh) Carácter de retorno. Desactive la opción Omitir espacio en blanco cuando realice esta búsqueda si no utiliza expresiones regulares. Observe que este método busca un determinado carácter, no un salto de línea. Por ejemplo, no busca etiquetas <br> ni <p>. Los caracteres de retorno aparecen como espacios en la vista Diseño, no como saltos de línea.

Utilice paréntesis para destacar agrupaciones dentro de la expresión regular a las que podrá hacer referencia posteriormente. A continuación, utilice $1, $2, $3, etc. en el campo Reemplazar con para hacer referencia a la primera, segunda, tercera y posteriores agrupaciones entre paréntesis.

Nota: En el campo Buscar, para hacer referencia a una agrupación entre paréntesis anterior en la expresión regular, utilice \1, \2, \3, etc. en lugar de $1, $2, $3.

Por ejemplo, si busca (\d+)\/(\d+)\/(\d+) y lo reemplaza por $2/$1/$3, cambiará el día y el mes de una fecha separada por barras y, de esta manera, el formato de fechas americano se convertirá al formato europeo.

Fuente: Adobe Help

[/spoiler]

Ahora iremos expandiendo los Ejemplos.

Supongamos que queremos hacer un cambio en muchos archivos de nuestra página web, lo primero antes de nada hacer una copia de seguridad antes de experimentar, ya que si aplicas los cambios a todos los fichero de un directorio no hay marcha atrás.


Por Ejemplos supongamos que disponemos de una página web Antigua, o bien una web descargada, o cualquier fichero con información que necesitemos extraer y volcar en una base de datos.

Partimos que dentro de los fichero hay un apartado común, que es lo que quedemos conservar, modificando el resto de la información.

En nuestro caso es una Galería de Imágenes extraída de una web dinámica, donde contiene campos: etiquetas, nombre y otros datos relevantes que necesitamos almacenar en una Base de datos para posterior mejorar el sistema de búsqueda, auto-clasificar las imágenes en carpeta y obtener otros datos.

Seguiremos los siguientes pasos:

  • Disponer de las imágenes y código HTML generado.
  • Estudiar la distribución del código, para saber que información hay conservar.
  • Añadir información Nueva si es necesaria.
  • Extraer información y añadirla a una base de Datos (MySQL en nuestro caso )

 

En mí análisis, la información que necesito esta dentro de una tabla que hay dentro de un DIV. Por lo tanto queda Así:

... Texto Innecesario ....
<div id="photodetails" ... >
<table cellpadding="2" cellspacing="1" width="100%">
... Texto Importante ...
</table>
... Texto Innecesario ...

En la ventana de Buscar y Reemplazar, marcamos la casilla “Utilizar Expresión Regular”, y en el campo de Buscar Escribimos la expresión Regular, a continuación Expongo Ejemplos :

Seleccionar El DIV + Tabla, hasta el Cierre de la tabla, de la Información que nos interesa:
\<div id=\"photodetails\".*\>[\W\w]*\<\/table.\>

Todo el Documento:
^.*\>[\W\w]*

Desde el Principio, hasta el comienzo de la Tabla que nos Interesa (Hasta la etiqueta de apertura del DIV)
^.*\>[\W\w]*(\<div id=\"photodetails\".*\>)

Utilizaremos este último, para posicionar la tabla al principio del código, y después eliminaremos, la parte que restante (Todo lo que hay después del cierre de la tabla).

Es decir Reemplazamos: </table>[\W\w]*
Por </table>

Con esto tenemos un código más limpio, para hacer modificaciones, en nuestro caso con PHP recogeremos información.