forked from hgrecco/stringparser
Easy to use pattern matching and information extraction for Python
License
afcarl/stringparser
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 :pep:`3101`, writing them is much easier than writing regular expressions (albeit less powerful). Examples -------- You can build a reusable parser object:: >>> 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 tuple:: >>> 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') OrderedDict([('a', 'answer'), ('b', 42)]) You can ignore some fields using _ as a name:: >>> Parser('The {_:s} is {:d}')('The answer is 42') 42 Limitations ----------- - From the format string: `[[fill]align][sign][#][0][minimumwidth][.precision][type]` only `type`, `sign` and `#` are currently implemented. This might cause trouble to match certain notation like: - decimal: '-4' written as '- 4' - etc - Lines are matched from beginning to end. {:d} will NOT return all the numbers in the string. Use regex for that.
About
Easy to use pattern matching and information extraction for Python
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 100.0%