Expresiones Regulares (III)

Muy bien, ahora ya sabemos cómo buscar utilizando expresiones que nos permitirán realizar búsquedas complejas y encontrar fragmentos de cadenas que nos son interesantes.

Pero ahora viene la gran cuestión. Aprenderemos a utilizar todo lo que hemos aprendido para reemplazar un texto por otro.

 

Hasta ahora somos capaces de encontrar cadenas con gran precisión, por ejemplo la siguiente:

<strong>[^<]*</strong>

Esta expresión busca cualquier texto que esté encerrado entre las etiquetas <strong> y </strong> y no contenga <. Este ejemplo no sería válido si hubiese una etiqueta anidada dentro de <strong> y </strong>.

La expresión [^<]* busca cualquier carácter diferente de < n veces o ninguna (por lo que también encontraría la cadena <strong></strong>).

 

Puedes hacer la prueba en el siguiente texto (cópialo y pégalo en vista de código en una nueva página):

<p>Podemos encontrar texto encerrado <strong>entre etiquetas de &lt;strong&gt;</strong> aunque contengan car&aacute;cteres especiales como estos ejemplos:</p>

<p>El gato <strong>&quot;corr&iacute;a&quot;</strong> por la casa.</p>

<p>Hace <strong>7 semanas</strong> que no te veo.</p>

<p>La operaci&oacute;n <strong>(8/2)+4</strong> da como resultado 8.</p>

<p>Tengo que ir a la consulta los <strong>lunes, mi&eacute;rcoles y viernes</strong>.</p>

<p>No <strong>podremos ir. Tengo que</strong> regar las plantas.</p>

 

El texto que verás en la vista de Diseño es el siguiente:

Podemos encontrar texto encerrado entre etiquetas de <strong> aunque contengan caracteres especiales como estos ejemplos:

El gato "corría" por la casa.

Hace 7 semanas que no te veo.

La operación (8/2)+4 da como resultado 8.

Tengo que ir a la consulta los lunes, miércoles y viernes.

No podremos ir. Tengo que regar las plantas.

 

Ahora aprenderemos una valiosa utilidad.

La herramienta Reemplazar busca subexpresiones en la cadena introducida en el cuadro Buscar, por lo que si tenemos:

(a)(b)(c)

Los equivalentes en la caja de texto de Reemplazar serían:

$1 $2 $3

 

Parece un poco complicado, pero en realidad no lo es.

Tomemos el ejemplo anterior, teníamos la expresión:

<strong>[^<]*</strong>

La podríamos transformar para tener tres subexpresiones distintas de esta forma:

(<strong>)([^<]*)(</strong>)

 

Ahora en la caja de Reemplazar cada subexpresión equivaldría a lo siguiente:

$1 = (<strong>)

$2 = ([^<]*)

$3 = (</strong>)

Por lo que si realizamos esa búsqueda y la reemplazamos por:

<b>$2</b>

Habremos conseguido cambiar las etiquetas de <strong> y </strong> por <b> y </b> sin modificar el texto que estaba dentro.

 

Fácil, ¿verdad?




  Índice del curso  

 




Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.