如何检查字符串是否可以解析为时间段(日期)或持续时间?

2024-06-02 18:32:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非结构化的文本文件集,其中包含多种日期和日期持续时间,格式如下:

  1. 2015年1月19日至2015年5月20日
  2. 2015年1月19日
  3. 2015年1月
  4. 2015年1-5月
  5. 2015年1月-5月
  6. 2015年1月至2015年5月

以及日期的标准形式:

Jan 19, 1990
January 19, 1990
Jan 19,1990
01/19/1990
01/19/90
1990
Jan 1990
January1990

我编码了

re.findall("((?:(?:[0-2]?\\d{1})|(?:[3][01]{1})))(?![\\d])(.)((?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Sept|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?))(.)((?:(?:[1]{1}\\d{1}\\d{1}\\d{1})|(?:[2]{1}\\d{3})))(?![\\d])",txt)

找出所有出现的日期和持续时间,但我没有得到预期的结果。 我应该使用什么正确的RegEx语句来确定和查找所有测试用例? 理想情况下,我需要能够确定文本文件中给出的所有日期和持续时间,并提取它们。你知道吗

来自不同文本文件的示例数据:

日期是1995年6月22日,杰夫先生从1993年5月开始写他的书…。从1994年1月22日到1994年6月28日,他们在公司内部的纠纷中进行了合作….他们家族有慢性疾病史….1980年1月发现….他活得很短,从1996年1月22日到1999年8月22日….他们害怕打开这座古墓,根据手稿,这座古墓已于1560年6月被封印


Tags: re编码标准格式jan形式ember结构化