[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