VerbalExpressions / PythonVerbalExpressions

Python regular expressions made easy
1.63k stars 115 forks source link

PythonVerbalExpressions

Build Status Code style: black

Installation

pip install VerbalExpressions

Usage

from verbalexpressions import VerEx
verbal_expression = VerEx()

Examples

Testing if we have a valid URL

# Create an example of how to test for correctly formed URLs
verbal_expression = VerEx()
tester = (verbal_expression.
            start_of_line().
            find('http').
            maybe('s').
            find('://').
            maybe('www.').
            anything_but(' ').
            end_of_line()
)

# Create an example URL
test_url = "https://www.google.com"

# Test if the URL is valid
if tester.match(test_url):
    print "Valid URL"

# Print the generated regex
print tester.source() # => ^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$

Replacing strings

# Create a test string
replace_me = "Replace bird with a duck"

# Create an expression that looks for the word "bird"
expression = VerEx().find('bird')

# Execute the expression in VerEx
result_VerEx = expression.replace(replace_me, 'duck')
print result_VerEx

# Or we can compile and use the regular expression using re
import re
regexp = expression.compile()
result_re = regexp.sub('duck', replace_me)
print result_re

Shorthand for string replace

result = VerEx().find('red').replace('We have a red house', 'blue')
print result

Developer setup : running the tests

python setup.py develop
python setup.py test

Other implementations

You can view all implementations on VerbalExpressions.github.io