Easy to use pattern matching and information extraction
Project description
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf37aac0166fc8f5705b450cc332f0d323e2d8b8191017bbfebe1f489f18f64d |
|
MD5 | 025b1e3c5d5cc030bc77c064cd026011 |
|
BLAKE2b-256 | acc057c5e808f68ed9a822d83413a3516f06a7751dc35e7039252e25994bf654 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44678ca6067a5c0cb4c45da38448e1971e2b6fb136b82bfb6a798bdbda7dd71f |
|
MD5 | 5d2bca7f892f8bfb0863aaad30f169e3 |
|
BLAKE2b-256 | 338d1ce822279ed69e5e5e83826b9f61d37ea146ffaf54b615d34ca363eb0aaa |