Parsing 在文本文档中查找日期或日期/时间的策略?

Parsing 在文本文档中查找日期或日期/时间的策略?,parsing,datetime,date,Parsing,Datetime,Date,问题:给定非结构化文本文档,请查找任何日期或日期/时间子字符串 我目前的想法是用一堆感觉非常笨拙、昂贵且容易出错的正则表达式来搜索已知格式:-) 这就是我所说的那种医生: 培根和我一起吃牛腰肉和排骨。Ullamco Consequeat shank猪chuck,laboris do pastrami 1980年1月10日est鹿肉shankle short 1-20-1980腰肉bresaola咸牛肉。牛肉排骨2001年2月28日,三尖铜柄,非熏牛肉除外 我怀疑我不是第一个解决这个问题的人,我希

问题:给定非结构化文本文档,请查找任何日期或日期/时间子字符串

我目前的想法是用一堆感觉非常笨拙、昂贵且容易出错的正则表达式来搜索已知格式:-)

这就是我所说的那种医生:

培根和我一起吃牛腰肉和排骨。Ullamco Consequeat shank猪chuck,laboris do pastrami 1980年1月10日est鹿肉shankle short 1-20-1980腰肉bresaola咸牛肉。牛肉排骨2001年2月28日,三尖铜柄,非熏牛肉除外

我怀疑我不是第一个解决这个问题的人,我希望最终的代码被隐藏在一些我不知道的开源项目中


想法?

这是一种特殊的启发式方法——但可能先标记化

您可以重新命名以下标记

  • “垃圾”(默认值,与日期部分不同)
  • dddd
    (4位数字-通常为一年)
  • dd
    (2位数字-日、月或年)
  • d
    (1位数字-日或月)
  • dd\u st
  • dd_th
    (以及位数的变化)
  • dd\u rd
  • dd\u nd
  • monthname
等等

每个标记可以有多个解释(例如
d
是月或日),日期是3个标记的任意序列,您可以从年、月、日中选择一个(按照您希望允许的任何顺序)


这里的想法是接受比正则表达式多得多的语法,如果这是你的意图的话

使用正则表达式执行此操作有什么错?为什么你认为它会很麻烦,或者很昂贵,或者容易出错?这就是regex的用途…你的例子让我很饿。