易于使用的模式匹配和信息提取
项目描述
动机
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 查看哈希值)