Skip to main content

Function Regular Expression

Project description

Functionnal Regular Expression : fre

fre permet d'utiliser les expressions régulières directement en python sans passer par les strings.

Motivation

Utiliser les expressions régulières fait partie des choses basiques en ingéniérie logicielle et la plupart du temps cela se fait au travers de strings qui sont parsées puis utilisées pour effectuer le matching avec d'autres chaines.

C'est pourquoi il y a fre qui permet de coder les expressions régulières directement en python sans phase de précompilation. On a donc un gain de performance à l'exécution.

Features

fre permet d'écrire les expressions régulières directement en python, soit de manière purement fonctionnelle, soit avec des opérateurs.

Un exemple fonctionnel

from fre.fnregex import charinterval, char

def match_lower(c: chr) -> bool:
    lower = charinterval(char('a'), char('z')) # utilisation de fonctions
    return lower(c).matched()

Le même avec les opérateurs

from fre.opregex import a, z

def match_lower(c: chr) -> bool:
    lower = a - z # utilisation de l'opérateur d'interval
    return lower(c).matched()

fre expose deux fonctions principales :

def match(fnrx: FnRegex, inp: str) -> MatchResult:
    ...
def fullmatch(fnrx: FnRegex, inp: str) -> FullMatchResult:
    ...

Ces deux fonctions prennent en premier paramètre une FnRegex construite soit de manière fonctionnelle soit avec les opérateurs et en second paramètre la string dont on veut savoir si la valeur correspond ou pas avec l'expression régulière.

fullmatch au contraire de match demande à ce que la totalité de la string soit en correspondance avec l'expression régulière. Alors que match elle ne demande que le début soit correspondant.

Installation

Pypi

pip install fre

Contribution

Licence

fre est sous licence MIT

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

fre-0.0.3.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

fre-0.0.3-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file fre-0.0.3.tar.gz.

File metadata

  • Download URL: fre-0.0.3.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for fre-0.0.3.tar.gz
Algorithm Hash digest
SHA256 c865ff3c9b30f2e7422cce055eea4d8ee6db8066573932cc5f6160e323480239
MD5 d7140d9e24c5775718f9c66c8fcc5f25
BLAKE2b-256 288ab4d41658e9abd2dfc80a43dee4af81b5d47e1b669bf88a9f6043bea5b106

See more details on using hashes here.

File details

Details for the file fre-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: fre-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for fre-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 54f732acbfa68e9bc9a2c99d5432c60031e02d89d637276f70bb4515802183b8
MD5 83229088bc6294e6fb00b84c38336d38
BLAKE2b-256 0b1cfc826ca5257397a82687025e499dd3bb334805986eaafdd04ae45ad21879

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