2017-10-09 35 views
-2

如何从一段文本和商店中提取格式为'May 29 2002'[mm dd yyyy]的日期到不同的领域。如何在Python中提取日期格式为'May 29 2002'[mm dd yyyy]

如:

老:

id  Description          
1 A man died on March 22 2002 in an accident..(continues). 
2 An employee died while operating lift on May 13 2001..(continues) 

新:

id  Date 
1  22-03-2002 
2  13-05-2001 

我尝试过各种选项蟒蛇有大熊猫,但不给予正确的格式的结果。请帮助我获得解决方案。

感谢 德维

回答

0

尝试用基本库第一。

安装:安装PIP parsedatetime

代码:

import parsedatetime 
p = parsedatetime.Calendar() 
parsed_data = p.parse("A man died on March 22 2002 in an accident..(continues)") 
day = parsed_data[0].tm_mday 
month = parsed_data[0].tm_mon 
year = parsed_data[0].tm_year 

在多个日期的情况下,我认为正则表达式将是非常有用的。 代码:

day_pattern : r"(?P<day>(?:[12][0-9]|3[01]|0?[1-9]))(?:th|nd|rd|st)?" 
month_pattern : r"(?P<month>jan(?:uary)?|mar(?:ch)?|may|jul(?:y)?|aug(?:ust)?|oct(?:ober)?|dec(?:ember)?|sep(?:tember|t)?|apr(?:il)?|jun(?:e)?|nov(?:ember)?|feb(?:ruary)?)", 
year_pattern : r"(?P<year>(?:19|20)?\d\d)", 
mm_pattern : r"(?P<month>(?:0?[1-9]|1[012]))", 
dd_pattern : r"(?P<day>(?:[12][0-9]|3[01]|0?[1-9]))", 
yy_pattern : r"(?P<year>(?:19|20)?\d\d)", 

您需要检查每场比赛的位置,并根据这些就可以决定的多个日期。

+0

..thank你这么多的答案..just无疑将它确定如果两个日期在文中给出?我发现它只需要最近的日期 –

+0

更新了答案。正则表达式会给你更好的匹配。 –

相关问题