Skip to main content

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.

Release files for stringparser 0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stringparser 0.7
File Size Uploaded
stringparser-0.7.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stringparser 0.7
File Interpreter ABI Platform
stringparser-0.7-py3-none-any.whl Python 3 none any Details

Total release size: 18.1 kB

Release files / stringparser-0.7.tar.gz

Download URL stringparser-0.7.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
bf37aac0166fc8f5705b450cc332f0d323e2d8b8191017bbfebe1f489f18f64d
BLAKE2b-256 checksum
How to use checksums
acc057c5e808f68ed9a822d83413a3516f06a7751dc35e7039252e25994bf654
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release files / stringparser-0.7-py3-none-any.whl

Download URL stringparser-0.7-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44678ca6067a5c0cb4c45da38448e1971e2b6fb136b82bfb6a798bdbda7dd71f
BLAKE2b-256 checksum
How to use checksums
338d1ce822279ed69e5e5e83826b9f61d37ea146ffaf54b615d34ca363eb0aaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.7 This release

2 release files

0.6

2 release files

0.5

1 release file

0.4.1

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page