Easy does it!
easy-expressions 
The world’s most gangsta regular expressions library.
It turns this..
regex = re.compile(r'(?:(?:\$){1,1})(?:(?:(?:\d)){1,})(?:(?:\.){1,1})(?:\d)(?:\d)')
into this!
from easy_expressions import Easy
easy = Easy() /
.find("$") /
.min(1).digits() /
.then(".") /
.digit() /
.digit()
regex = easy.getRegex()
regex.findall("$10.00");
About
easy-expressions is a python regular expressions library with a Python for Humans philosophy. Rather than having to remember the complex regular expressions syntax, easy-expressions allows you to write complicated regular expressions in natural English, so you’ll get your pattern matches right the first time without any headache.
Installation
pip install easy-expressions
Examples
Searching for dollar amounts
from easy_expressions import Easy
easy = Easy() /
.find("$") /
.min(1).digits() /
.then(".") /
.digit() /
.digit()
regex.test("$10.00"); # True
regex.test("$XX.YZ"); # False
Searching for Credit Cards
easy = Easy() \
.startOfLine() \
.exactly(4).digits() \
.then('-') \
.exactly(4).digits() \
.then('-') \
.exactly(4).digits() \
.then('-') \
.exactly(4).digits()
input_s = "Hey Joe! The credit card number for the invoice is 4444-5555-6666-7777. Thanks!"
easy.test(input_s) # True
input_s = "Hey Joe! The credit card number for the invoice is 1-2-3-4. Thanks!"
easy.test(input_s) # False
Inspiration
Regexes are hard when they should be easy.
I had this idea while watching Straight Outta Compton. Turns out [@thebinarysearchtree](https://github.com/thebinarysearchtree/) had already implemented it in JS, so this is essentially a port of that.
Contributing
This software is still quite young and I’m certain there are still bugs in it. If you find bugs or want new features included, please create a new Issue and send a pull request, along with an accompanying test. Thanks!
Other Easy Projects
If you like easy things, you may also enjoy:
License
MIT, 2015.
Metadata
Release files for easy-expressions 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| easy-expressions-0.1.1.tar.gz | 4.9 kB | Without provenance | Details for easy-expressions-0.1.1.tar.gz |
Release files / easy-expressions-0.1.1.tar.gz
| Download URL | easy-expressions-0.1.1.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
daec75889a1a86314f7bd2d1f76a62ed075acc5692236a37c818d2df985c9913
|
|
BLAKE2b-256 checksum How to use checksums |
dc4f2c676b98841ad01c66c122b2d6048f5ff21354edeed6b94a6fbe9a9891d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for easy-expressions 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.