I m a python newbie. My script (below) contains a function named "fn_regex_raw_date_string" that is intended to convert a "raw" date string like this: Mon, Oct 31, 2011 at 8:15 PM into a date string like this: _2011-Oct-31_PM_8-15_
Question No. 1: When the "raw" date string contains extraneous characters eg (xxxxxMon, Oct 31, 2011 at 8:15 PMyyyyyy), how should I modify my regular expression routine to exclude the extraneous characters?
I was tempted to remove my comments from the script below to make it
simpler to read, but I thought it might be more helpful for me to leave
them in the script.
Question No. 2: I suspect that I should code another function that will replace the "Oct" in "2011-Oct-31_PM_8-15_ " with "11". But I can t help wondering if there is some way to include that functionality in my fn_regex_raw_date_string function.
Any help would be much appreciated.
Thank you, Marceepoo
import sys
import re, pdb
#pdb.set_trace()
def fn_get_datestring_sysarg():
this_scriptz_FULLName = sys.argv[0]
try:
date_string_raw = sys.argv[1]
#except Exception, e:
except Exception:
date_string_raw_error = this_scriptz_FULLName + : sys.argv[1] error: No command line argument supplied
print date_string_raw_error
#returnval = this_scriptz_FULLName +
+ date_string_raw
returnval = date_string_raw
return returnval
def fn_regex_raw_date_string(date_string_raw):
# Do re replacements
# p:DataVBPython_MarcsPrgsPython_ItWorksFixCodeFromLegislaturezCalifCode_MikezCode.py
# see also (fnmatch) p:DataVBPython_MarcsPrgsPython_ItWorksookmarkPDFs.aab.py
#srchstring = r"(.?+)(Sun|Mon|Tue|Wed|Thu|Fri|Sat)(, )(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)( )([d]{1,2})(, )([d]{4})( at )([d]{1,2})(:)([d]{1,2})( )(A|P)(M)(.?+)"
srchstring = r"(Sun|Mon|Tue|Wed|Thu|Fri|Sat)(, )(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)( )([d]{1,2})(, )([d]{4})( at )([d]{1,2})(:)([d]{1,2})( )(A|P)(M)"
srchstring = re.compile(srchstring)
replacement = r"_7-3-5_13M_9-11_"
#replacement = r"_8-4-6_14M_10-12_"
regex_raw_date_string = srchstring.sub(replacement, date_string_raw)
return regex_raw_date_string
# Mon, Oct 31, 2011 at 8:15 PM
if __name__ == __main__ :
try:
this_scriptz_FULLName = sys.argv[0]
date_string_raw = fn_get_datestring_sysarg()
date_string_mbh = fn_regex_raw_date_string(date_string_raw)
print date_string_mbh
except:
print error occurred - fn_get_datestring_sysarg()