-
Notifications
You must be signed in to change notification settings - Fork 1
/
regexplainr.pl
103 lines (75 loc) · 2.47 KB
/
regexplainr.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/perl -w
=head1 NAME
regexplainr.pl - a CGI script to explain regex (using YAPE::Regex::Explain)
=head1 VERSION
$Id: regexplainr.pl,v 1.9 2008/02/24 12:51:10 paulg Exp $
=head1 DESCRIPTION
For more information, see: http://tardate.blogspot.com/2008/02/explaining-regular-expressions.html
=head1 REQUIRES
CGI
YAPE::Regex
YAPE::Regex::Explain
=head1 AUTHOR
gallagher.paul@gmail.com
=cut
use strict;
use CGI qw (:standard escapeHTML escape);
use YAPE::Regex::Explain;
my $regex = param("regex");
sendRegexPage( $regex );
1;
# send configuration page
sub sendRegexPage {
my $regex = shift;
my $webMaster = $ENV{'SERVER_ADMIN'};
my $style=<<END;
BODY {
background-color: white;
font-size: 10pt;
font-family: sans-serif;
color: black;
}
h1 {
font-size: 18pt;
font-family: sans-serif;
}
h2 {
font-size: 14pt;
font-family: sans-serif;
}
blockquote {
font-family:courier new;
font-size:85%;
background: Gainsboro;
border: 1px solid LightSlateGray;
padding: 5px 5px;
white-space: pre;
}
END
print header();
print start_html(-title=>'RegExplainr',
-author=>$webMaster,
-style=>$style );
print h1( 'RegExplainr!' );
print p( 'Helps to explain Regular Expressions. Discussion of this script is on my ' .
a({-href=>'http://tardate.blogspot.com/2008/02/explaining-regular-expressions.html'}, 'tardate') . ' blog.' );
print start_form(-method=>'POST',-action=>url());
print p( 'Regular Expression: ' . textfield(-name=>'regex', -size=>80) );
print submit('submit','Explain!');
print endform();
if ($regex) {
print p( i( a({-href=>url() . '?regex=' . escape($regex) }, 'Permalink to this regexplanation')));
my $exp = YAPE::Regex::Explain->new($regex)->explain;
print blockquote( escapeHTML( $exp ) );
}
print h2( 'Some Regular Expression Resources..' );
print ul(
li([
a({-href=>'http://en.wikipedia.org/wiki/Regular_expression'}, 'Wikipedia on Regular expressions'),
a({-href=>'http://www.regular-expressions.info/'}, 'Regular-Expressions.info'),
a({-href=>'http://del.icio.us/popular/regex'}, 'regex @ del.icio.us'),
a({-href=>'http://www.amazon.com/gp/product/0596528124?ie=UTF8&tag=itsaprli-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0596528124'}, 'Mastering Regular Expressions (O\'Reilly)')
])
);
print end_html();
}