【问题标题】:How to find all regex strings in python dateparser如何在 python dateparser 中查找所有正则表达式字符串
【发布时间】:2018-05-10 11:03:49
【问题描述】:

我正在使用dateparser 模块将一些人类可读的文本解析为python 日期时间对象。现在我有一个正则表达式字符串列表并应用输入字符串来找出是否有任何匹配项。

我想使用dateparser 使用的正则表达式列表的完整列表,有没有办法获取列表,或者有没有办法只处理输入字符串。

我有如下列表

date_regex = ['[0-9]+ days', 'yesterday', '[0-9]+ weeks', 'a week', '1 week', 'last week', '[0-9]+ months', 'a month', '1 month', 'year']

但是使用dateparser 可以解析像1 year agolast 3 mins ago 这样的字符串。所以我想使用dateparser 使用的所有可用的正则表达式。

我的输入包含大量文本,还包含与日期/时间相关的字符串。所以我需要提取它们并使用dateparser将它们转换为日期时间对象。

更新示例 input="I booked a movie 4 days ago, but planned last week"。 我需要提取4 days agolast week。我想在dateparser 中应用所有可用的正则表达式字符串。

【问题讨论】:

标签: python date-parsing


【解决方案1】:

为什么不直接使用dateparser 包?从自然语言中解析日期非常复杂,有很多边缘情况。如果你只是好奇他们在做什么,最好的方法是查看源代码。

编辑:

您可以将字符串列表转换为正则表达式:

import re
regexes = list(map(lambda x: re.compile(x), items))

【讨论】:

  • 是的,我正在查看他们的源代码,那里有他们用来检查用户通过正则表达式匹配器传递的输入字符串的方法。
  • @kishore 是个问题,你如何从文件中读取正则表达式然后在变量上执行它?
  • 我认为问题是,“我如何使用dateparser”。
  • 不,我想在我的输入字符串上应用所有可能的正则表达式来查找任何与日期/时间相关的字符串是否存在。如果将它们转换为日期时间对象。
  • @kishore 你可以使用dateparser 包来做到这一点。详细信息在自述文件中。 github.com/scrapinghub/dateparser#usage
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 2016-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多