a re question

sismex01 at hebmex.com sismex01 at hebmex.com
Mon Sep 9 22:26:50 CEST 2002


> 
> Hi,
>   I have a file with lines of the format:
> 
> 001 Abc D Efg 123456789   7 100 09/05/2002 20:23:23
> 001 Xya FGh   143557789   7 100 09/05/2002 20:23:23
> 


Are the fields are always fixed length?


> I am trying to extract the 9 digit field and the single digit field
> immediatley after that.
> 
> When I use Visual Regexp to try out the regexp 
> 
> (\d{9,} {3,}\d)
> 
> it highlights the 2 fields exactly. 
> 
> But when I use the following Python code I get None:
> 
> >> s='001 Abc D Efg 123456789   7 100 09/05/2002 20:23:23'
> >> p = re.compile(r'(\d{9,} {3,}\d)')
> >> print p.match(s)
> >> None
> 
> Could anybody point out where I'm going wrong?
> 
> Thanks,
> 

You could be a bit more explicit with your regexp.
Using the input you gave:

> 001 Abc D Efg 123456789   7 100 09/05/2002 20:23:23
> 001 Xya FGh   143557789   7 100 09/05/2002 20:23:23

I'd think something like this is better:

rx = re.compile(r"\d+\s\D{9}\s(\d{9})\s+(\d+)")

And that gives us:

>>> import re
>>> rx = re.compile(r"(\d{9})\s+(\d+)")
>>> s = """
... 001 Abc D Efg 123456789   7 100 09/05/2002 20:23:23
... 001 Xya FGh   143557789   7 100 09/05/2002 20:23:23
... """
>>> rx.findall(s)
[('123456789', '7'), ('143557789', '7')]
>>> 

Something like that.

-gus
--

Advertencia: 
La informacion contenida en este mensaje es confidencial y restringida y
esta destinada unicamente para el uso de la persona arriba indicada, Esta
comunicacion representa la opinion personal del remitente y no refleja
necesariamente la opinion de la Compañia. Se le notifica que esta
estrictamente prohibida cualquier difusion, distribucion o copia de este
mensaje. Si ha recibido esta comunicacion o copia de este mensaje por error,
o si hay problemas en la transmision, favor de comunicarse con el remitente.


Todo el correo electrónico enviado para o desde esta dirección será
procesado por el sistema de correo corporativo de HEB. Tal correo
electrónico esta sujeto a ser almacenado y puede ser revisado por alguien
ajeno al recipiente autorizado con el propósito de monitorear que se cumplan
las normas de seguridad de la empresa.




More information about the Python-list mailing list