Vrex - A Visual Regular Expression Tool
Introduction
I have used Visual Regexp by Laurent Riesterer. It is a tool for
constructing and testing regular expressions written in Tcl/Tk. I
found it quite useful when writing the scripts for
PAGE.
Since I was debugging a new version of PAGE at the time, I decided
that I would rewrite a subset of Visual Regexp in Python. My program
is called 'vrex'. The reasons for writing it were
- I thought it would be a good example of PAGE that would illustrate
several important usages of tkinter - especially the application of
different colored text in a text box.
- Since Visual Regexp is a Tcl/Tk script it utilizes the Tcl regular
expression processor which is necessarily different from the Python regular
expression support and so a Python programmer should test his regular
expressions using the Python regular expression support.
- Visual Regexp has absolutely no documentation which is disgraceful
but all too common with open source software. Since I wrote the
python tool, I know how it works and can document it as I am doing
here. This program is based on Visual Regexp and even uses the
same colorization algorithm.
Visual Regexp provides a mechanism for creating the candidate
regexp. However, I never figured out how it works (no documentation)
so I couldn't put it in my program.
Requirements
The current version requires a current version of Python3.
Installation
Merely download vrex.zip and unzip it in the desired directory with
unzip vrex.zip
The following command will execute the program:
python3 vrex.py
Usage
The program GUI looks like:
.
-
One enters the regular expression under test into the top text box,
and the sample which is the subject of the regular expression match
into the middle text box. One may use the File menu to load files
into the text boxes, one may directly type entries or use the normal
cut and paste facilities of the operating system.
-
Pressing the Go button causes the match to be attempted. Also,
colorization is applied to both the regular expression and to the
sample. The regular expression is colorized to show the portions of
the regular expression are to extracted individually. And if the match
is successful the corresponding portions of the sample are displayed
in the same colors.
-
By selecting one of the row of buttons marked match, 1, 2, ..., 9, the
portions of the sample corresponding to extracted portions are
displayed in the match window.
-
You can use the File menu to load to save both the regular expression
and the sample.
-
The Quit Button terminates the program.
-
The File menu also has a Quit entry that terminates the program.
In normal usage, one loads a sample and a regular expression and
experiments with incrementally changes both and testing by hitting the
go button. When you are satisfied you can save the regular expression
or put it on the clipboard by selecting the characters that make up
the regular expression.
You can also enter a whole file of sample strings using File->Load
Sample. In that case, when you select Go, the regular expression
candidate will be applied to each line individually in the sample and
the sample will be colorized accordingly. You can add
build a set of samples by adding them to the sample window and saving
the sample to a file.