Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

stringparser

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stringparser

Easy to use pattern matching and information extraction

  • 0.7
  • PyPI
  • Socket score

Maintainers
1

Latest Version image License Python Versions CI LINTER Coverage

Motivation

The stringparser module provides a simple way to match patterns and extract information within strings. As patterns are given using the familiar format string specification 3101., writing them is much easier than writing regular expressions (albeit less powerful).

Just install it using:

pip install stringparser

Examples

You can build a reusable parser object:

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

Or directly:

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

You can retrieve many fields:

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

And you can use numbered fields to order the returned list:

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

Or named fields to return an OrderedDict:

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

You can ignore some fields using _ as a name:

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

You can parse into an object attribute:

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

You can parse even parse into an nested structues:

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

Limitations

  • From the format string: [[fill]align][sign][#][0][width][,][.precision][type] only [type], [sign] and [#] are currently implemented. This might cause trouble to match certain notation like: decimal -4 written as - 4.
  • Lines are matched from beginning to end. {:d} will NOT return all the numbers in the string. Use regex for that.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc