Skip to main content

Beautiful regular expressions for Python 3.6 and up.

Project description

cursive_re

Beautiful regular expressions for Python 3.6 and up.

Installation

pip install cursive_re

Examples

>>> from cursive_re import *

>>> hash = text("#")

>>> hexdigit = any_of(in_range("0", "9"), in_range("a-f") + in_range("A-F"))

>>> hexcolor = (
...   beginning_of_line() + hash +
...   group(repeated(hexdigit, exactly=6) | repeated(hexdigit, exactly=3)) +
...   end_of_line(),
... )

>>> str(hexcolor)
'^\\#([a-f0-9]{6}|[a-f0-9]{3})$'

>>> hexcolor_re = compile(hexcolor)
re.compile('^\\#([a-f0-9]{6}|[a-f0-9]{3})$')

>>> hexcolor_re.match("#fff")
<re.Match object; span=(0, 4), match='#fff'>

>>> hexcolor_re.match("#ffff") is None
True

>>> hexcolor_re.match("#ffffff")
<re.Match object; span=(0, 7), match='#ffffff'>

>>> domain_name = one_or_more(any_of(in_range("a", "z") + in_range("0", "9") + text("-")))
>>> domain = domain_name + zero_or_more(text(".") + domain_name)
>>> path_segment = zero_or_more(none_of("/"))
>>> path = zero_or_more(text("/") + path_segment)
>>> url = (
...     group(one_or_more(any_of(in_range("a", "z"))), name="scheme") + text("://") +
...     group(domain, name="domain") +
...     group(path, name="path")
... )
>>> str(url)
"(?P<scheme>[a-z]+)://(?P<domain>[a-z0-9\-]+(?:\.[a-z0-9\-]+)*)(?P<path>(?:/[^/]*)*)"

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

cursive_re-0.0.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cursive_re-0.0.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file cursive_re-0.0.0.tar.gz.

File metadata

  • Download URL: cursive_re-0.0.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for cursive_re-0.0.0.tar.gz
Algorithm Hash digest
SHA256 44b8448a29146dadb5b36352e5ba6e6c1998ae0a5877631f6634a5e508c8f1a8
MD5 578be9533ec9fedfebc4a8c6b06b73e0
BLAKE2b-256 49011a03dfcb13c447a585b43bea6f116175c732a10c1442a537f796ee033cca

See more details on using hashes here.

File details

Details for the file cursive_re-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: cursive_re-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for cursive_re-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d710c07929d9741dae9a88003f894813cec18624e733b511ccd8b7509c459b3d
MD5 c4a65fd605d74fd11f452bae6c723030
BLAKE2b-256 88e1fe2ae8623b78f949cac269d28e6cce433d3507de3d2799951a1b258cc349

See more details on using hashes here.

Supported by

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