Skip to main content

Wrapper for more functionality out of regex parse results.

Project description

tregex

Build Status
Coverage Status
PyPI version

tregex is a wrapper around Python regular expressions that makes usage smoother and more user friendly.

Install

pip install tregex-tobiasli

Usage

import tregex as tr

t = tr.to_tuple(pattern='([^;]+?)@(.+?)\.([^;]+)', string='john.smith@somewhere.co.uk; hackzor@coolface.com')
assert t[0][1] == 'somewhere'
assert t[1][2] == 'com'

pattern = '(?P<name>[^;]+?)@(?P<address>.+?)\.(?P<domain>[^;]+)'
t = tr.to_dict(pattern=pattern, string='john.smith@somewhere.co.uk; hackzor@coolface.com')
assert t[0]['name'] == 'john.smith'
assert t[1]['address'] == 'coolface'

t = tr.to_object(pattern=pattern, string='john.smith@somewhere.co.uk; hackzor@coolface.com')
assert t[0].name == 'john.smith'
assert t[1].address == 'coolface'

The above methods patterns can be either a string or a compiled regular expression. TregexCompiled is a class for simply containing the compiled regex to be run on the above methods. If patterns are long, this usage will speed things up considerably.

from tregex import TregexCompiled

pattern = '(?P<name>[^;]+?)@(?P<address>.+?)\.(?P<domain>[^;]+)'
trc = TregexCompiled(pattern)

t = trc.to_object('john.smith@somewhere.co.uk; hackzor@coolface.com')

assert t[0].name == 'john.smith'

tregex also contains some methods for simply fuzzy text matching using difflib.SequenceMatcher:

from tregex import find_best

places_in_wales = ['Llanaber', 'Llanaelhaearn', 'Llanbedr', 'Llandbedrgoch', 'Llanbedrog', 'Llanberis', 'Llandanwg', 'Llanegryn', 'Llandegwning', 'Llandeiniolen', 'Llandwrog']

best = find_best('Llanberris', places_in_wales)
assert best == 'Llanberis'

The other methods are find, find_scores (returns the matched scores along with the candidate) and similarity (which returns the score between a single pair of strings).

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

tregex-tobiasli-1.0.3.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file tregex-tobiasli-1.0.3.tar.gz.

File metadata

  • Download URL: tregex-tobiasli-1.0.3.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.1

File hashes

Hashes for tregex-tobiasli-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b5dcbf38aa42b1154f724fb63f540e3d26c06c01b94240543ca42d6e4866f0eb
MD5 bac6d132acfa2f80c520f6a25cd12328
BLAKE2b-256 0ee1f60fb772a6e2a30977a69567a594268fae2f06b2f29f0ed0d2d1e99675af

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