【发布时间】:2019-02-26 23:44:53
【问题描述】:
我正在从包含日期的 HTML 元素中抓取字符串。我要做的是使用正则表达式提取日期,然后使用 datetime 模块将它们转换为不同的格式。字符串遵循以下格式:
Date first available at Amazon.ca: Nov. 23 2017
Date first available at Amazon.ca: March 27 2017
Date first available at Amazon.ca: March 6 2018
这方面的棘手之处在于,只有名字长的月份才会被缩写。
Jan.
Feb.
March
April
May
June
July
Aug.
Sept.
Oct.
Nov.
Dec.
我的第一个想法是选择除Date first available at Amazon.ca: 之外的所有内容,但显然这比我最初想象的要困难一些。
我的下一个想法类似于r'^(J|F|M|A|S|O|De)',但这显然行不通,因为月份不在字符串的开头。
现在我被想法困住了。
显然像下面这样的正则表达式会起作用,但它似乎过于冗长。
r'(Jan.|Feb.|March|April|May|June|July|Aug.|Sept.|Oct.|Nov.|Dec.)[\d\s]+'
【问题讨论】:
-
查看模块 dateutil。它有一个日期解析器,可以做你想做的事,而不必摆弄正则表达式。
标签: python regex python-3.x datetime web-scraping