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

Secure Apache with Let’s Encrypt on Ubuntu 18.04: Free SSL Guide

Let's Encrypt is a free, automated certificate authority run by the Internet Security Research Group…

1 minute ago

Install GCC on Ubuntu 18.04: C and C++ Compiler Setup Guide

GCC (GNU Compiler Collection) is a set of compilers and development libraries for C, C++, Fortran,…

10 minutes ago

Install Python 3.8 on Ubuntu 18.04: apt and Source Build Methods

Python is one of the most widely used programming languages in the world. Its clean, readable…

15 minutes ago

Install Tomcat 9 on Ubuntu 18.04: Systemd Service Setup Guide

Apache Tomcat is an open-source Java application server that implements the Java Servlet, JavaServer Pages, and…

23 hours ago

Change Timezone on Ubuntu 18.04: Command Line and GUI Methods

Setting the correct timezone on your Ubuntu machine is more important than it sounds. Your…

23 hours ago

Install PrestaShop on Ubuntu 18.04 with Nginx and MySQL

PrestaShop is a free, open-source e-commerce platform built with PHP and MySQL. It comes with a…

23 hours ago