Skip to content

Instantly share code, notes, and snippets.

@DeeNewcum
Created January 7, 2014 18:46
Show Gist options
  • Save DeeNewcum/8304425 to your computer and use it in GitHub Desktop.
Save DeeNewcum/8304425 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
use strict;
use warnings;
use Regexp::Optimizer;
my @losers_minus_winners = qw[
blaine breckinridge bryan cass clay cox davis dewey dole dukakis ford fremont
goldwater gore greeley hancock hughes humphrey kerry king landon mccain
mcclellan mcgovern mondale parker pinckney romney scott seymour smith stevenson
tilden wilkie
];
# build the input regexp
my $re = '^!(' . join('|', @losers_minus_winners) . ')$';
#die "$re\n";
# do DFA optimization
$re = Regexp::Optimizer->new->as_string(qr/$re/);
# do some superficial changes for presentation purposes
$re =~ s/^\(\?\^://;
$re =~ s/\)$//;
$re =~ s/\(\?:/(/g;
print "$re\n";
@DeeNewcum
Copy link
Author

The starting regexp is:

    ^!(blaine|breckinridge|bryan|cass|clay|cox|davis|dewey|dole|dukakis|ford|fremont|goldwater|gore|greeley|hancock|hughes|humphrey|kerry|king|landon|mccain|mcclellan|mcgovern|mondale|parker|pinckney|romney|scott|seymour|smith|stevenson|tilden|wilkie)$

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment