Help with regex needed

Kushal Kumaran kushal.kumaran+python at gmail.com
Tue Apr 12 01:41:29 EDT 2011


On Tue, Apr 12, 2011 at 10:50 AM, Yuri Slobodyanyuk
<yuri.slobodyanyuk at gmail.com> wrote:
> Good day everyone,
> I am trying to make this pretty simple regex to work but got stuck,
> I'd appreciate your help .
> Task: Get current date , then read file of format below, find the line that
> matches
> the current date of month,month and year and extract the number from such
> line.
> Here is what I did , but if i run it at 11 April 2011 ...
>    - regex pattern_match  matches nothing
>    - regex pattern_test  matches the line "4141411 Fri 11 11 2011" , logical
> as it is the last matching line in year 2011 with the date of 11th.
> My question - why regex pattern_match  does not match anything and how to
> make it match the exact line i want.
> Thanks
> Yuri

Consider using datetime.strptime to parse dates and times.  You will
have to strip off the first column since it doesn't look like part of
the date itself.

>
> from datetime import datetime, date, time
> import re
> today_day = datetime.now()
> time_tuple= today_day.timetuple()
> pattern_match = re.compile("([0-9])+ +" +  "Fri +" + str(time_tuple[1]) + "
> +"  +   str(time_tuple[2]) + " +"  +  str(time_tuple[0]) + " +")
> hhh = open("file_with_data.data",'r')
> pattern_test =  re.compile("([0-9]+)" + ".*"  + " +" +
> str(time_tuple[2]).strip(' \t\n\r') + " +"  + str(time_tuple[0]).strip('
> \t\n\r') )
> for nnn in hhh:
>     if  (re.search(pattern_test,nnn)):
>        print nnn.split()[0]
>
> 1111111 Fri 4  8 2011
> 2323232 Fri 4 15 2011
> 4343434 Fri 4 22 2011
> 8522298 Fri 4 29 2011
> .........
> 5456678 Fri 10 28 2011
> 5633333 Fri 11  4 2011
> 4141411 Fri 11 11 2011
> 3324444 Fri 11 18 2011
>
> --
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
>



-- 
regards,
kushal



More information about the Python-list mailing list