自由形式输入解析器的集合(特别关注日期)

fuzzyparsers的Python项目详细描述


介绍和示例

fuzzyparsers库提供了一个小的函数集合来清理 自由形式的用户输入。目前它的主要价值是灵活的日期。 分析器。该库力求在解析日期时具有本地智能。

这个库有两个主解析器。第一个是前缀解析器,它比较 字符串返回字符串列表的唯一元素 与前缀匹配。如果匹配不唯一,则引发异常。

>>> from fuzzyparsers import fuzzy_match
>>> fuzzy_match(['aab','bba','abc'],'aa')
'aab'
>>> fuzzy_match(['aab','bba','abc'],'a')  # two strings starting with 'a'.
Traceback (most recent call last):
...
ValueError: ambiguous match for 'a'

第二个解析器以各种格式分析日期并返回datetime.date。 反对。接受的格式包括:

jan 12, 2003
jan 5
2004-3-5
+34 -- 34 days in the future (relative to todays date)
-4 -- 4 days in the past (relative to todays date)

例如:

>>> from fuzzyparsers import parse_date
>>> parse_date('jun 17 2010') # my youngest son's birthday
datetime.date(2010, 6, 17)

库允许设置默认日期来填充 日期(如年份)。默认情况下,没有一年的日期将给出 本年度。

>>> from fuzzyparsers import DateParser
>>> import datetime
>>> DateParser(today=datetime.date(2013, 3, 1)).parse_date('feb 3')
datetime.date(2013, 2, 3)

待办事项

我们希望支持以下功能:

  • 分析时间字符串,如“上午10点”和“下午2点3点”
  • A“[0-9]*[0-9]*”一个月第一次,一天第二次 应返回最接近的月/日组合。例如, “12-3”将于今年或去年12月3日回归。

更改日志

  • 0.9.0-支持Python3
  • 0.8.0-换成麻省理工学院的执照,因为我不明白为什么我在乎 此包的GPL。
  • 0.7.3-修复了本地月日订单问题(感谢Treeve获得 开始了。
  • 0.7.2-添加文档测试和“2012年3月”日期格式;文档测试脚本
  • 0.7.1-安装修复程序
  • 0.7-彻底检查日期解析API以支持相对日期(不一定 相对于当前日期)
  • 0.6.x-首次公开发布和一系列文档/安装更正

安装

fuzzyparsers由joel b.mohler编写,并根据 麻省理工学院的执照。

使用以下命令运行扩展文档测试:

python -m doctest fuzzyparsers/*.py
python -m doctest README.txt

要安装fuzzyparser,请执行普通的python操作(可能是根操作):

python setup.py install

或:

pip install fuzzyparsers

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在windows上向doclet添加多个sourcepath?   java谷歌地图应用程序   java为以下场景创建正则表达式   Java文件通道异常   Java集合如何将文件对象列表转换为路径对象列表?   多线程生产者/消费者模型使用Java(同步),但始终运行同一线程   java如何为存储在ArrayList中的特定属性设置值?   java一次不能加载多个osm文件   使用java 8将map<String,map<Long,customeObject>>转换为list<customeObject>   java JDK包含哪些脚本语言解释器?   java为什么eclipse在这里生成语法错误?   多线程Javasocket异常:socket已关闭且值为空   java我想在Android活动中创建一个带有图像的可滚动文本列表。我应该用什么?   java实现编译时警告   java根据安卓 SQLite数据库中前一行的相同值递增特定值   java移动迭代器语句使代码可编译   java JVM终身/旧代已达到限制&服务器挂起   为什么我们不能在映射上使用迭代器(Java)?   xml如何映射JAXB中已有的JavaBean