任务是:清理不同日期格式的日期(如3/14/2019,03-14-2019和2015/3/19),将其替换为单一标准格式的日期。
不知道怎么完成
import re
text = "3/14/2019, 03-14-2019, and 2015/3/19"
datePtn = re.compile(r"""(
(\d{1,4}) #group 1
(-|/|\.) #separator group 2
(\d{1,2}) #group 3
(-|/|\.) #separator group 4
(\d{1,4}) #group 5
)""",re.VERBOSE)
matches = []
findallResult = datePtn.findall(text)
for group in findallResult:
if len(group[1]) > 2:
dateNew = '/'.join([group[3],group[5],group[1]])
matches.append(dateNew)
else:
dateNew = '/'.join([group[1],group[3],group[5]])
matches.append(dateNew)
newDates = []
month = ''
day = ''
for date in matches:
for group in datePtn.findall(date): #group is tuple
if group[1][0] == "0":
month = group[1][1]
else:
month = group[1]
if group[3][0] == '0':
day = group[3][1]
else:
day = group[3]
newDate = '/'.join([month,day,group[5]])
newDates.append(newDate)
print("new dates")
print(newDates)
oldDates = []
for i in findallResult:
oldDates.append(i[0])
print("old dates")
print(oldDates)
字符串
我可以得到两个名单与旧的和新的日期。如何创建一个只替换日期的字符串?谢谢你的好意
2条答案
按热度按时间oalqel3c1#
dateutil
非常适合这个用例。字符串
产出:
型
只需在
strftime
调用中替换所需的模式。93ze6v8z2#
我可以得到我想要的结果,但必须单独列出文本中的所有日期格式。
字符串