跳转到主要内容

易于使用的模式匹配和信息提取

项目描述

Latest Version image License Python Versions CI LINTER Coverage

动机

stringparser 模块提供了一种简单的方式来匹配字符串中的模式并提取信息。由于模式使用熟悉的格式字符串规范 3101 给出,因此编写它们比编写正则表达式(尽管功能较弱)要容易得多。

只需使用以下命令安装:

pip install stringparser

示例

您可以构建一个可重用的解析器对象

>>> from stringparser import Parser
>>> parser = Parser('The answer is {:d}')
>>> parser('The answer is 42')
42
>>> parser('The answer is 54')
54

或者直接

>>> Parser('The answer is {:d}')('The answer is 42')
42

您可以检索许多字段

>>> Parser('The {:s} is {:d}')('The answer is 42')
['answer', 42]

并且可以使用编号字段来排序返回的列表

>>> Parser('The {1:s} is {0:d}')('The answer is 42')
[42, 'answer']

或者使用命名字段来返回 OrderedDict

>>> Parser('The {a:s} is {b:d}')('The answer is 42')
{'a': 'answer', 'b': 42}

您可以使用 _ 作为名称来忽略一些字段

>>> Parser('The {_:s} is {:d}')('The answer is 42')
42

您可以解析到对象属性

>>> obj = Parser('The {0.name:s} is {0.value:d}')('The answer is 42')
>>> obj.name
'answer'
>>> obj.value
'42'

您甚至可以将解析解析到嵌套结构中

>>> obj = Parser('The {0.content[name]:s} is {0.content[value]:d}')('The answer is 42')
>>> obj.content
{'name': 'answer', 'value': 42}

限制

  • 从格式字符串: [[fill]align][sign][#][0][width][,][.precision][type] 目前仅实现了 [type][sign][#]。这可能会匹配某些符号,例如:十进制 -4 写作 - 4 时可能会出现问题。
  • 从开始到结束匹配行。 {:d} 将不会返回字符串中的所有数字。请使用正则表达式来做到这一点。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

stringparser-0.7.tar.gz (10.2 kB 查看哈希值)

上传时间 源代码

构建分发

stringparser-0.7-py3-none-any.whl (7.9 kB 查看哈希值)

上传时间 Python 3

由以下提供支持