🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

easy-expressions

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

easy-expressions

Really, really easy regular expressions for python.

0.1.1
PyPI
Maintainers
1

.. figure:: http://i.imgur.com/N7uilEZ.png :alt: Easy does it!

Easy does it!

easy-expressions |Build Status|

The world's most gangsta regular expressions library.

It turns this..

.. code:: python

regex = re.compile(r'(?:(?:\$){1,1})(?:(?:(?:\d)){1,})(?:(?:\.){1,1})(?:\d)(?:\d)')

into this!

.. code:: python

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 <https://speakerdeck.com/kennethreitz/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


.. code:: python

    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
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python


    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 <https://github.com/thebinarysearchtree/regexpbuilderjs>`__, 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:

-  `django-easy-api <https://github.com/Miserlou/django-easy-api>`__
-  `django-easy-split <https://github.com/Miserlou/django-easy-split>`__
-  `django-easy-timezones <https://github.com/Miserlou/django-easy-timezones>`__
-  `django-knockout-modeler <https://github.com/Miserlou/django-knockout-modeler>`__
-  `simpleaws <https://github.com/Miserlou/simpleaws>`__

License
-------

MIT, 2015.

.. |Build Status| image:: https://travis-ci.org/Miserlou/easy-expressions.svg
   :target: https://travis-ci.org/Miserlou/easy-expressions

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts