Curso de Programación en Python/RegEx-12

De WikiCabal
Ir a la navegación Ir a la búsqueda

Más back reference por posición

Usamos 3 back references en este ejemple.
Tenemos una list de contactos, algunos sin teléfonos.
Si existe un número telefono el es al inicio del registro
sequido por un apellido paterno y un coma, y el/los nombres
el apellido materno, si existe.

Queremos presentarlo en forma:

Nombre(s) apellido materno apellido paterno teléfono

[rrc@Pridd ~]$ python3
Python 3.4.3 (default, Jul  1 2015, 18:38:11) 
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> 
>>> l = ["3331452638 Couture, Richard", 
...      "Garcia, Manuel Espinoza", 
...      "3332435264 Ortego, Luisa Elezabeth Muñoz",
...      "4564756654 Herera, Alfonso Abel Garcia"]
>>> 
>>> for i in l:
...   res = re.search(r"([0-9-]*)\s*([A-Za-z]+),\s+(.*)", i)
...   print(res.group(3) + " " + res.group(2) + " " + res.group(1))
... 
Richard Couture 3331452638
Manuel Espinoza Garcia 
Luisa Elezabeth Muñoz Ortego 3332435264
Alfonso Abel Garcia Herera 4564756654
>>>