|
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 <strong></strong> aunque contengan carácteres especiales como estos ejemplos:</p>
<p>El gato <strong>"corría"</strong> por la casa.</p>
<p>Hace <strong>7 semanas</strong> que no te veo.</p>
<p>La operación <strong>(8/2)+4</strong> da como resultado 8.</p>
<p>Tengo que ir a la consulta los <strong>lunes, mié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?
|
|
![]() |
![]() |
|
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.