Exrex : Irregular Methods On Regular Expressions

Exrex is a command line tool and python module that generates all – or random – matching strings to a given regular expression and more. It’s pure python, without external dependencies.

There are regular expressions with infinite matching strings (eg.: [a-z]+), in these cases it limits the maximum length of the infinite parts.

It uses generators, so the memory usage does not depend on the number of matching strings.

Also Read : Sh00t : A Testing Environment for Manual Security Testers

Features

  • Help in generating all matching strings.
  • Help in generating a random matching string.
  • Help in counting the number of matching strings.
  • Help in simplification of regular expressions.

How Installation Is Done?

To install it, simply run the below command:

$ pip install exrex

Or else you can try the below steps to install it

$ easy_install exrex

How to use it?

If it is as python module

import exrex

exrex.getone(‘(ex)r\1’)
‘exrex’

list(exrex.generate(‘((hai){2}|world!)’))
[‘haihai’, ‘world!’]

exrex.getone(‘\d{4}-\d{4}-\d{4}-[0-9]{4}’)
‘3096-7886-2834-5671’

exrex.getone(‘(1[0-2]|0[1-9])(:[0-5]\d){2} (A|P)M’)
’09:31:40 AM’

exrex.count(‘[01]{0,9}’)
1023

print ‘\n’.join(exrex.generate(‘This is (a (code|cake|test)|an (apple|elf|output)).’))

This is a code.
This is a cake.
This is a test.
This is an apple.
This is an elf.
This is an output.
print exrex.simplify(‘(ab|ac|ad)’)
(a[bcd])

Command line usage ?

exrex –help
usage: exrex.py [-h] [-o FILE] [-l] [-d DELIMITER] [-v] REGEX

exrex – regular expression string generator

positional arguments:
REGEX REGEX string

optional arguments:
-h, –help show this help message and exit
-o FILE, –output FILE
Output file – default is STDOUT
-l N, –limit N Max limit for range size – default is 20
-c, –count Count matching strings
-m N, –max-number N Max number of strings – default is -1
-r, –random Returns a random string that matches to the regex
-s, –simplify Simplifies a regular expression
-d DELIMITER, –delimiter DELIMITER
Delimiter – default is \n
-v, –verbose Verbose mode

Examples:

$ exrex ‘[asdfg]’
a
s
d
f
g

$ exrex -r ‘(0[1-9]|1[012])-\d{2}’
09-85

$ exrex ‘[01]{10}’ -c
1024

R K

Recent Posts

Install Pip on Ubuntu 18.04: Python 3 and Python 2 Setup Guide

Pip is the official package manager for Python and the standard way to install libraries from…

23 hours ago

Install R on Ubuntu 18.04 from CRAN: Statistical Computing Setup

R is an open-source programming language and environment built for statistical computing and data visualization. It…

24 hours ago

Install Jenkins on Ubuntu 18.04: CI/CD Server Setup Guide

Jenkins is an open-source automation server that makes it easy to build CI/CD pipelines. Continuous integration…

24 hours ago

Install Android Studio on Ubuntu 18.04 with Snap and OpenJDK 8

Android Studio is the official IDE for Android development, built on JetBrains' IntelliJ IDEA platform. It…

24 hours ago

Install and Configure GitLab on Ubuntu 18.04 with Omnibus

GitLab is a web-based, open-source Git repository manager written in Ruby. It includes built-in tools for…

24 hours ago

Install Anaconda on Ubuntu 18.04: Python Data Science Setup Guide

Anaconda is the most widely used Python distribution for data science and machine learning. It bundles…

2 days ago