Skip to main content

Easy to use pattern matching and information extraction

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stringparser-0.7.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

stringparser-0.7-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file stringparser-0.7.tar.gz.

File metadata

  • Download URL: stringparser-0.7.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for stringparser-0.7.tar.gz
Algorithm Hash digest
SHA256 bf37aac0166fc8f5705b450cc332f0d323e2d8b8191017bbfebe1f489f18f64d
MD5 025b1e3c5d5cc030bc77c064cd026011
BLAKE2b-256 acc057c5e808f68ed9a822d83413a3516f06a7751dc35e7039252e25994bf654

See more details on using hashes here.

File details

Details for the file stringparser-0.7-py3-none-any.whl.

File metadata

  • Download URL: stringparser-0.7-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for stringparser-0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 44678ca6067a5c0cb4c45da38448e1971e2b6fb136b82bfb6a798bdbda7dd71f
MD5 5d2bca7f892f8bfb0863aaad30f169e3
BLAKE2b-256 338d1ce822279ed69e5e5e83826b9f61d37ea146ffaf54b615d34ca363eb0aaa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page