Sergio Álvarez (xergio)

Escrito 194

Expresiones regulares para reemplazar textos

Si aun no sabes usar expresiones regulares ya va siendo hora de que aprendas. Voy a poner un ejemplo de porqué son muy muy útiles, algo que acabo de hacer hace un periquete.

Necesitaba meter en una tabla de mi base de datos todos los paises del mundo. Yo lo que tenía era el código HTML de un menú desplegable de una web cualquiera, pero necesitaba la sentencia SQL para insertarlos en la base de datos. Un ejemplo de lo que tenía es este:

Y necesitaba esto:

INSERT INTO paises (id_pais, nombre_pais) VALUES ("", "Afghanistan");

Y así hasta 240 y pico paises. Muchos editores de texto permiten reemplazar texto usando expresiones regulares (comúnmente llamadas regexp). El texto a buscar va a ser algo así:

Y por lo que se reemplaza esto:

INSERT INTO paises (id_pais, nombre_pais) VALUES ("", "1");

Con .* lo que queremos decir es "cualquier cosa", y si lo encapsulamos entre paréntesis le decimos que recoja esa "cualquier cosa". Luego en el texto reemplazado la colocará en lugar del 1 que vemos.

De esta forma conseguimos reemplazar grandes cantidades de texto con una par de líneas. Si quereis aprender más sobre expresiones regulares podeis apoyaros en estas direcciones yo hago:

Expresiones regulares en la Wikipedia. Expresiones regulares en PHP.

9 comentarios

David comentó:

  • #1
  • 14-7/17:38
Son utilisimas, y eso que no las domino ni un 90% de todo lo posible. Algun dia me pondre, y es que solucionan cosas de todo tipo

xergio comentó:

  • #2
  • 14-7/17:42
Aunque para ciertas cosas son más lentas que 10 líneas de código (por ejemplo), comprobado además :P

... hmmm ... comentó:

  • #3
  • 14-7/21:31
oye.. te veo bastante puesto... a mi me vendría bien una cosilla: me gustaría recorrer todos los registros de una tabla.... y que en uno de sus campos sustituya donde poca "X" por "Y" ... mejor con un ejemplo:

TABLA --------- (columna "nombres") ana perico juan

imagina que deseo cambiar las ocurrencias de "an" por "bravo" entonces quedaría:

TABLA --------- (columna "nombres") bravoa perico jubravo

es posible hacerlo? me vendría muy bien... porque antes tenía mis fotos alojadas en un sitio.. y ahora las he cambiado... y en mi blog tengo que ir actualizando a mano unas direcciones por otras... Gracias !

por cierto... un poco de offtopic ! buen trabajo en tublog ! te invito al mio y comentes ! gracias ! (hmmm)

xergio comentó:

  • #4
  • 14-7/21:46
Ome, así a bote pronto lo que seme ocurre es que hagas una consulta a la DB, apliques esa regla al nombre, y vuelvas a guardar el resultado. Con SQL se puede hacer, pero no te puede decir de memoria la solución.

 Jabber status Janni comentó:

[Avatar]
  • #5
  • 7-3/02:17
Dove http://www.radtechnik.info/incontri-gay-milano anno.

 Jabber status Jose comentó:

[Avatar]
  • #6
  • 7-3/16:38
Ad http://www.balamuto.cn/nintendo-wii fatto.

 Jabber status Hopper comentó:

[Avatar]
  • #7
  • 9-3/07:13
Via http://www.marasti.cn/prenotazione-hotel gruppo.

 Jabber status auto usata torino comentó:

[Avatar]
  • #8
  • 9-3/21:03
..was just passing by.. good work

 Jabber status elaborare comentó:

[Avatar]
  • #9
  • 14-3/08:04
Onnea hyvasti!))

Deja un comentario

Pulsa en los títulos para ver información sobre cómo comentar.

Autocompletado de nicks

Todos los campos del formulario son opcionales menos el del PIN.

Usa el tabulador para autocompletar los nicks de otros comentaristas.

Si escribes @ y pulsas la tecla tabulador varias veces podrás recorrer la lista de nicks usados

Y si escribes # (almoadilla) y número (Ej.: #5) se substituirá directamente el nick del comentario correspondienmte al pulsar el tabulador.

Tags HTML permitidos

Tags: a, strong, b, em, u, code, cite.

El tag a admite la propiedad href="..." para indicar la dirección.

Los tags también tienen autocompletado (al igual que los nicks). Para usarlos se pone por ejemplo strong + TABULADOR.

Formulario para comentar

Cargando...

Todo el contenido bajo el dominio XERGIO.NET está sujeto a la licencia Creative Commons con las condiciones BY-SA. Web estandarizada en XHTML 1.0, CSS 2, RSS 2 y Atom 1.0.