python-3.x - 当字符串在日期之前有 ':' 时,datefinder 不会找到日期
问题描述
当日期之前有“:”时,datefinder 模块不会找到日期。
这里有一个类似的问题: Datefinder Module Stranger behavior on specific string
string = "Assessment Date 17-May-2017 at 13:31"
list(datefinder.find_dates(string.lower()))
#Returns [datetime.datetime(2017, 5, 17, 13, 31)]
但是,当我添加:像这样的“评估日期:”时,它失败了
string = "Assessment Date 17-May-2017 at 13:31"
list(datefinder.find_dates(string.lower()))
#returns []
解决方案
这些是分隔符模式datefinder
:DELIMITERS_PATTERN = r"[/:-\,\s_+@]+"
因此,当您尝试解析字符串时,“日期:”会导致问题。
您可以使用正则表达式预清理字符串。
import re as regex
import datefinder
def preclean_input_text(text):
cleaned_text = regex.sub(r'[a-z]:\s', ' ', text, flags=re.IGNORECASE)
return cleaned_text
def parse_date_information(text):
date_info = list(datefinder.find_dates(text.lower()))
return date_info
string = "Assessment Date: 17-May-2017 at 13:31"
cleaned_string = preclean_input_text(string)
print(parse_date_information(cleaned_string))
# output
[datetime.datetime(2017, 5, 17, 13, 31)]
推荐阅读
- git - Linux 上的多个 github 帐户 - 无法推送到远程,但可以拉取
- javascript - 每当我加载我的项目时,它都会显示未定义的索引错误?
- python - Flask 应用程序 Heroku 错误应用程序崩溃 Windows
- android - React-native android:可以通过命令运行应用程序,但不能通过 android studio 运行
- react-native - 应用程序崩溃并出现错误:在广告上的触摸事件之后,无法找到类 UIManager 的 JSIModule
- ios - 放大视频 - 如何使用 swift 将视频上传到“输入”存储桶?
- c++ - 有没有办法识别持久性
独特性? - python - 将负行值与前一行 pandas 相加
- angular - 角度通用连接的postgresql问题
- google-admin-sdk - 我想知道非管理员帐户如何使用 Admin SDK