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

stringparser的Python项目详细描述


动机

stringparser模块提供了匹配模式和提取 字符串中的信息。因为模式是用熟悉的格式给出的 字符串规范PEP 3101,编写它们比编写要容易得多 正则表达式(尽管功能不太强大)。

示例

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

>>> 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')
OrderedDict([('a', 'answer'), ('b', 42)])

您可以忽略一些使用“作为名称”的字段:

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

限制

  • 从格式字符串: [[填充]对齐][符号][][0][最小宽度][.精度][类型] 目前只实现了类型符号。 这可能会给匹配某些符号带来麻烦,例如:
    • 十进制:'-4'写为'-4'
  • 行从头到尾匹配。{:d}不会返回所有 字符串中的数字。使用正则表达式。

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

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?