viernes, 4 de febrero de 2011

Expresiones regulares

Reacciones: 
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(lang('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\(lang\('$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
;=)