似乎有很多方法可以从字符串中提取各种格式的日期时间。但是,当字符串包含许多数字和符号时,似乎存在一个问题
以下是一个例子:
t = 'Annual Transmission Revenue Requirements and Rates Transmission Owner (Transmission Zone) Annual Transmission Revenue Requirement Network Integration Transmission Service Rate ($/MW-Year) AE (AECO) $136,632,319 $53,775 AEP (AEP) $1,295,660,732 $59,818.14 AP (APS) $128,000,000 $17,895 ATSI (ATSI) $659,094,666 $54,689.39 BC (BGE) $230,595,535 $35,762 ComEd, Rochelle (CE) $702,431,433 $34,515.60 Dayton (DAY) $40,100,000 $13,295.76 Duke (DEOK) $121,250,903 $24,077 Duquesne (DLCO) $139,341,808 $51,954.44 Dominion (DOM) $1,031,382,000 $52,457.21 DPL, ODEC (DPL) $163,224,128 $42,812 East Kentucky Power Cooperative (EKPC) $83,267,903 $24,441 MAIT (METED, PENELEC) $150,858,703 $26,069.39 JCPL $135,000,000 $23,597.27 PE (PECO) $155,439,100 $19,093 PPL, AECoop, UGI (PPL) $435,349,329 $58,865 PEPCO, SMECO (PEPCO) $190,876,083 $31,304.21 PS (PSEG) $1,248,819,352 $130,535.22 Rockland (RECO) $17,724,263 $44,799 TrAILCo $226,652,117.80 n/a Effective June 1, 2018 '
import datefinder
m = datefinder.find_dates(t)
for match in m:
print(match)
有没有办法顺利提取日期?如果没有更好的方法,我可以求助于re
来获取特定的格式。从datefinder
的github来看,它似乎是一年前被废弃的
虽然我不知道日期是如何格式化的,但这里有一个正则表达式解决方案,它可以处理以“/”分隔的日期。应使用月份和天数表示为单个数字的日期,或者如果它们包含前导零
如果日期以连字符分隔,则将正则表达式的第9和第18个字符替换为连字符,而不是/。(如果使用第二条打印语句,请替换第12和31个字符)
Edit:添加了第二个print语句,其中包含一些更好的正则表达式。这可能是更好的方式
编辑#2:这里有一种方法可以将月份名称拼写出来(完整,或3个字符的缩写),然后是天,然后是逗号,然后是2或4位数的年份
相关问题 更多 >
编程相关推荐