Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
GraphViz::Regex(3)    User Contributed Perl Documentation   GraphViz::Regex(3)

       GraphViz::Regex - Visualise a regular expression

	 use GraphViz::Regex;

	 my $regex = '(([abcd0-9])|(foo))';

	 my $graph = GraphViz::Regex->new($regex);
	 print $graph->as_png;

       This module attempts to visualise a Perl	regular	expression.
       Understanding regular expressions is tricky at the best of times, and
       regexess	almost always evolve in	ways unforseen at the start. This
       module aims to visualise	a regex	as a graph in order to make the
       structure clear and aid in understanding	the regex.

       The graph visualises how	the Perl regular expression engine attempts to
       match the regex.	Simple text matches or character classes are
       represented nodes.	Alternations are represented by	a
       diamond-shaped node which points	to the alternations. Repetitions are
       represented by self-edges with a	label of the repetition	type (the
       nodes being repeated are	pointed	to be a	full edge, a dotted edge
       points to what to match after the repetition). Matched patterns (such
       as $1, $2, etc.)	are represented	by a 'START $1'	.. 'END	$1' node pair.

       This uses the GraphViz module to	draw the graph.

       This is the constructor.	It takes one mandatory argument, which is a
       string of the regular expression	to be visualised. A GraphViz object is

	 my $graph = GraphViz::Regex->new($regex);

       The regex can be	visualised in a	number of different graphical formats.
       Methods include as_ps, as_hpgl, as_pcl, as_mif, as_pic, as_gd, as_gd2,
       as_gif, as_jpeg,	as_png,	as_wbmp, as_ismap, as_imap, as_vrml, as_vtx,
       as_mp, as_fig, as_svg. See the GraphViz documentation for more
       information. The	two most common	methods	are:

	 # Print out a PNG-format file
	 print $g->as_png;

	 # Print out a PostScript-format file
	 print $g->as_ps;

       Note that this module relies on debugging information provided by Perl,
       and is known to fail on at least	two versions of	Perl: 5.005_03 and
       5.7.1. Sorry about that - please	use a more recent version of Perl if
       you want	to use this module.

       Leon Brocard <>

       Copyright (C) 2000-1, Leon Brocard

       This module is free software; you can redistribute it or	modify it
       under the Perl License, a copy of which is available at

perl v5.32.1			  2016-12-27		    GraphViz::Regex(3)


Want to link to this manual page? Use this URL:

home | help