[Tutor] IP address parse

Josh Rosen rosenville at gmail.com
Sun Aug 10 07:58:53 CEST 2008


On Aug 9, 2008, at 10:46 PM, Josh Rosen wrote:

> There are a few different problems in your code.  First off, regular  
> expressions must be passed to re.compile() as strings.
>
>> 	patt = re.compile(\[0-9]{1,3})\.(\[0-9]{1,3})\.(\[0-9]{1,3})\. 
>> (\[0-9]{1,3})
>
> should read
>
> 	patt = re.compile(r"(\[0-9]{1,3})\.(\[0-9]{1,3})\.(\[0-9]{1,3})\. 
> (\[0-9]{1,3})").
>
> I've used a raw string literal here to prevent Python from  
> interpreting the backslashes as character escapes.  However, this  
> regular expression still won't work.  If you're going to use a  
> character class, there's no need to put a backslash in front of it.   
> Correcting this, the line becomes:
>
> 	patt = re.compile(r"([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9] 
> {1,3})")
>
> This works, but it can be made simpler by using the shorthand  
> notation \d in place of [0-9]:
>
> 	patt = re.compile(r"(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})")
>
> Since it doesn't look like you're doing anything with the parts of  
> the ip besides writing the whole ip to a file, you can eliminate the  
> capturing parentheses in your regular expression and replace them  
> with a single pair:
>
> 	patt = re.compile(r"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})")
>
> The string formatting expression becomes:
>
> 	outfile.write("%s\n" % m.groups())
>
> Hope this helps,
> Josh
> 	
>
> On Aug 9, 2008, at 9:57 PM, Que Prime wrote:
>
>> I'm trying to parse a log file for all ip addresses but can't get  
>> my RE to work.  Thanks in advance for pointing me in the right  
>> direction
>>
>>
>> #IP address parse
>>
>> ##############################
>> import re
>>
>> infile = open("host0_declare.txt","r")
>> outfile = open("out.txt","w")
>>
>> patt = re.compile(\[0-9]{1,3})\.(\[0-9]{1,3})\.(\[0-9]{1,3})\. 
>> (\[0-9]{1,3})
>>
>> for line in infile:
>>  m = patt.match(line)
>>  if m:
>>    outfile.write("%s.%s.%s.%s\n"%m.groups())
>>
>> infile.close()
>> outfile.close()
>> #############################
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> http://mail.python.org/mailman/listinfo/tutor
>



More information about the Tutor mailing list