2013-10-13 14:24:49 -07:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
use Test::More;
|
|
|
|
use DDG::Test::Goodie;
|
|
|
|
|
|
|
|
zci answer_type => 'regex_cheat';
|
|
|
|
|
|
|
|
ddg_goodie_test(
|
|
|
|
[
|
|
|
|
# This is the name of the goodie that will be loaded to test.
|
|
|
|
'DDG::Goodie::RegexCheatSheet'
|
|
|
|
],
|
|
|
|
# this one is really hard to actually test, so fudge it
|
|
|
|
'regex' => test_zci(
|
|
|
|
qr/^Anchors.*|((Character|POSIX) Classes).*Pattern Modifiers.*Escape Sequences.*Groups and Ranges.*Assertions.*Special Characters.*String Replacement/s,
|
2013-12-05 14:33:01 -08:00
|
|
|
html => qr#<div(.*<table.*<tr.*<td.*</table.*)+</div>$#s,
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-10-13 14:24:49 -07:00
|
|
|
),
|
|
|
|
'regex ^' => test_zci(
|
|
|
|
"^ - Start of string or line",
|
2013-12-05 14:33:01 -08:00
|
|
|
html => "<code> ^ </code> - Start of string or line",
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-10-13 14:24:49 -07:00
|
|
|
),
|
|
|
|
'regex $' => test_zci(
|
|
|
|
'$ - End of string or line',
|
2013-12-05 14:33:01 -08:00
|
|
|
html => '<code> $ </code> - End of string or line',
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-10-13 14:24:49 -07:00
|
|
|
),
|
2013-11-05 05:34:26 -08:00
|
|
|
'regexp \s' => test_zci(
|
|
|
|
'\s - Whitespace',
|
2013-12-05 14:33:01 -08:00
|
|
|
html => '<code> \s </code> - Whitespace',
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-11-09 14:42:21 -08:00
|
|
|
),
|
|
|
|
'regular expression [a-e]' => test_zci(
|
|
|
|
'[a-e] - Single character range (a or b ... or e)',
|
2013-12-05 14:33:01 -08:00
|
|
|
html => '<code> [a-e] </code> - Single character range (a or b ... or e)',
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-11-09 14:42:21 -08:00
|
|
|
),
|
|
|
|
'regular expression [M-Y]' => test_zci(
|
|
|
|
'[M-Y] - Single character range (M or N ... or Y)',
|
2013-12-05 14:33:01 -08:00
|
|
|
html => '<code> [M-Y] </code> - Single character range (M or N ... or Y)',
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-11-09 14:42:21 -08:00
|
|
|
),
|
2013-11-14 11:51:11 -08:00
|
|
|
'regex [3-5]' => test_zci(
|
|
|
|
'[3-5] - Single character range (3 or 4 or 5)',
|
2013-12-05 14:33:01 -08:00
|
|
|
html => '<code> [3-5] </code> - Single character range (3 or 4 or 5)',
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-11-14 11:51:11 -08:00
|
|
|
),
|
2013-11-09 14:42:21 -08:00
|
|
|
'regex [1-2]' => test_zci(
|
|
|
|
'[1-2] - Single character range (1 or 2)',
|
2013-12-05 14:33:01 -08:00
|
|
|
html => '<code> [1-2] </code> - Single character range (1 or 2)',
|
|
|
|
heading => 'Regex Cheat Sheet',
|
2013-11-09 14:42:21 -08:00
|
|
|
),
|
2013-11-14 11:51:11 -08:00
|
|
|
'regex [b-X]' => undef,
|
|
|
|
'regex [a-Z]' => undef,
|
|
|
|
'regex [Y-E]' => undef,
|
|
|
|
'regex [A-a]' => undef,
|
|
|
|
'regex [z-a]' => undef,
|
|
|
|
'regex [a-1]' => undef,
|
|
|
|
'regex [1-a]' => undef,
|
|
|
|
'regex [1-1]' => undef,
|
|
|
|
'regex [3-2]' => undef,
|
|
|
|
'regex [a-]' => undef,
|
|
|
|
'regex [4-8] fo sho!' => undef,
|
|
|
|
'regex foop [1-3]' => undef,
|
2014-02-10 13:24:52 -08:00
|
|
|
'regexp $' => test_zci(
|
|
|
|
'$ - End of string or line',
|
|
|
|
html => '<code> $ </code> - End of string or line',
|
|
|
|
heading => 'Regex Cheat Sheet'
|
|
|
|
),
|
2013-10-13 14:24:49 -07:00
|
|
|
);
|
|
|
|
|
2013-12-05 14:33:01 -08:00
|
|
|
done_testing;
|