viernes, 4 de febrero de 2011

Cuestión de expresiones regulares

Hoy me topé con una serie de archivos sobre los cuales tenía que hacer un unos reemplazos (pero como eran varios y además existían varias lineas dentro del mismo), me decidí a ponerme a ver lo de expresiones regulares ya que no quería hacer como un "mono" y realmente quedé impresionado...

Por ejemplo si se quiere reemplazar una cadena como:
$this->Session->setFlash(__('texto_a_conservar_1', 'texto_a_conservar_2'));

para obtener:
$this->Session->setFlash(miFuncion('texto_a_conservar_1'), 'texto_a_conservar_2');

donde texto_a_conservar_1 y texto_a_conservar_2 puede ser cualquier frase:
se hace un find de la siguiente manera:
this->Session->setFlash\(__\('(.*?)', '(.*?)'\)\);
y en replace se pone:
this->Session->setFlash\(miFuncion\('$1'\), '$2'\);

De esa manera obtenemos lo deseado. Las posibilidades son infinitas y solo es cuestión de probar o buscar en buscadores para entender un poco más.... por último, les recomiendo un programita que encontre y me resulto interesante se llama txt2regex y permite armar expresiones regulares fácilmente....
solo basta con ejecutar

# sudo aptitude install txt2regex
y luego
# txt2regex
Espero que les sirva!
Saludos
;=)

No hay comentarios: